Can-Bus per Mqtt abfragen an Tecalor Wärmepumpe

Hallo zusammen,

würde gern das Thema nochmal aufgreifen. Gibt es hier noch weitere Lösungen??
Beim Kompilieren vom @KlausGuenther script bekomme ich bei einem Wemos D1 immer ein Fehler.

/Users/Tim/Documents/Arduino/Can-bus/Can-bus.ino: In function 'void connectWiFi()':
/Users/Tim/Documents/Arduino/Can-bus/Can-bus.ino:106:14: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
  106 |   WiFi.begin(ssid, password);
      |              ^~~~
      |              |
      |              const char*
In file included from /Users/Tim/Documents/Arduino/Can-bus/Can-bus.ino:1:
/Users/Tim/Documents/Arduino/libraries/WiFi/src/WiFi.h:79:21: note:   initializing argument 1 of 'int WiFiClass::begin(char*, const char*)'
   79 |     int begin(char* ssid, const char *passphrase);
      |               ~~~~~~^~~~

exit status 1

Compilation error: invalid conversion from 'const char*' to 'char*' [-fpermissive]

Anbei der Thema von ihm.

Danke für die Hilfe.

const char* ssid = "SSID";
const char* password = "PASSWORD";

Gänsefüßchen vergessen?
Wo bei ssid musst dein Router eintragen, bei Password das Password

Hallo fony,

leider steht es genau so. Habe ja nur das Script aus dem anderen Beitrag genommen.

Gruß

Versuche es mal so:

constexpr char ssid[] {"SSID"};
constexpr char password[] {"PASSWORD"};

Hallo Kai-R,

leider auch ohne erfolg. Selber Fehler. Keine ahnung ob es mir dem Board zusammenhängt.
Bespielt werden soll ein Wemos. Dazu habe ich diese Board auch in Arduino Programm ausgewählt.
Vllt übersehe ich ja was.

Gruß

error: invalid conversion from 'const char*' to 'char*' [-fpermissive]

Du übergibst ein "das steht auf einer Steintafel" and jemanden der das aber ändern können will.

Nimm mal das const aus der definition von ssid weg.

Das ist wohl eine andere Bibliothek. Dann mach das const/constexpr bei der SSID weg.

Hast wirklich ein LOLIN WEMOS D1?

Hey danke das hat geklappt. Konnte es uploaden. Gibt es eine andere Bibliothek dafür?? Kannte nur die.

Wie kann ich dann die Daten im Mqtt im Iobroker dann verarbeiten??
in dem anderen Beitrag wird nicht ganz beschrieben.

Gruß

Kommt wohl aufs ioBroker Plugin bzw. auf Deine MQTT Installation an, wie es im Detail funktioniert.

Ich denke mal du musst passende Objekte im 0_userdata Bereich von ioBroker anlegen und im MQTT Client die passenden Topics abonnieren. Dann kannst Du die Daten mit Javascript/Typescript und/oder im VIS weiter verarbeiten.

Der Fehler mit const char ssid[] ist wohl eher hier:

Wenn du die gleiche Version wie ich hast, beginnt Wifi.h so:

/*
  WiFi.h - Library for Arduino Wifi shield.
  Copyright (c) 2011-2014 Arduino LLC.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it  ...

ssid kann durchaus ein const char* sein, da dessen Inhalt nirgends geändert wird.

Du übergibst ssid also an jemanden, der Schrottsoftware publiziert.

2014 wurde noch ein nachlässiger Compiler verwendet und Arduino Software ist zu Recht ohne jede Gewährleistung...

Falls du es änderst, zieht sich
src/WiFi.h:79
durch in
src/WiFi.cpp:98
src/utility/wifi_drv.h:97
src/utility/wifi_drv.cpp:126

fertig!

( Bei der Gelegenheit sollte man natürlich die anderen Varianten von WiFi.begin, die du nicht verwendest, auch reparieren. )

Dürfte schon passiert sein

1 Like

Danke für den Tip. Hat geklappt.

Bekomme leider eine Fehlermeldung im Seriellen Monitor.
Angeschlossen ist es an einem Wemos D1 R2 Mini.

Vllt hat ja jemand eine idee.

MCP2515      Wemos D1 MINI
----------------------------
INT     >     --
SCK     >     IO18 (CLK)
MOSI    >     I023 (MISO)
MISO    >     IO19 (MOSI)
CS      >     IO5 (CS)
GND     >     GND
VCC     >     VCC (5V)

`--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Soft WDT reset

Exception (4):
epc1=0x402011cd epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

stack>>>

ctx: cont
sp: 3ffffe50 end: 3fffffd0 offset: 0160
3fffffb0: 3fffdad0 00000000 3ffee8fc 40204888
3fffffc0: feefeffe feefeffe 3fffdab0 40100dc9
<<<stack<<<

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 3424, room 16
tail 0
chksum 0x2e
load 0x3fff20b8, len 40, room 8
tail 0
chksum 0x2b
csum 0x2b
v000456e0
~ld
����8�n��>r���n�b � � rb�e� ���a��l�<��n���leľr�8eG�l # � �Entering Configuration Mode Failure... Fehler beim Verbinden mit dem CAN-Bus!

Ein Watchdog will regelmäßig gefüttert werden. Wenn das nicht passiert, löst der einen Reset aus. Vermutlich ist da eine Schleife im Code die zu lange läuft. Dadurch wird der Watchdog vernachlässigt...

Ja dachte ich auch. Glaube aber es liegt am gerät. Habe das Ganze mal an einem Arduino Nano Angeschlossen. Dort gibt es kein Problem. Er versucht dann die WIFI verbindung aufzubauen aber das klapp ja nicht kein Shield dran. Ich versuche das ganze auf einem ESP8266MOD. Denke da wird das Problem sein.
Kann es sein das ich ein ESP 32 nehmen muss??

Keine Verbindung, kein Grund die lange Schleife laufen zu lassen...

Zudem dürfte der Watchdog auf einem Nano anders konfiguriert sein als auf einem ESP8266. ESP32 ist dann schon wieder etwas anderes.

Ich denke du hast da 2 Optionen:

  • Watchdog ausschalten
  • Code refactoren und die Fragwürdige Stelle ändern.

Ich taste mich gerade schritt für Schritt voran. Also den Fehler habe ich schonmal rausbekommen. Verkabelungsfehler. Jetzt steht das nächste Problem an. Wifi will sich nicht verbinden.

Hmm muss ich mal schauen wie ich das rausbekomme.

Wie meinst du das mit dem Watchdog??

Hallo zusammen,

habe endlich es soweit das ich vermutlich Daten bekomme. Bin mir aber nicht sicher ob diese ihre Richtigkeit haben. Wer hat sich ans Thema getraut und ist vllt schon weiter??

Danke Gruß