NEWS
evohome2mqtt Temperatur einstellen
-
@steffen-ermisch Na ja Du musst ja einen Server haben auf dem localhost, sonst könnte der Adapter ja nicht funktionieren.
Wie gesagt ich würde die Haken raus machen - aber das eigentlich Problem ist Dein Prefix und dass Du quasi den ganzen iobroker unter dem Präfix evohome2mqtt publishst und das kennt natürlich Dein evo System nicht.
Mit dieser Einstellung landet der gesamte iobroker unter dem Präfix evohome2mqtt - und das willst Du nicht. Also was Du als String einträgst landet nicht, wie Du vielleicht denkst unter evohome/set/thermostat/bad sondern unter
evohome2mqtt/evohome/set/thermostat/bad
und das kann Deine Heizung gar nicht finden.Stell das mal Dein mqtt Einstellungen so ein:
Nur dass Du bei Dir mqtt.0.* statt 1 einträgst.
Also Präfix raus und nicht den ganzen iobroker nach mqtt publishen, sondern nur die mqtt Instanz auf Deinem iobroker.
Edit: Von mir aus kannst die beiden Haken auch wieder rein machen - die stören nicht, musst Dir halt nur bewusst sein, dass dann Aktualisierungen im iobroker nicht weitergegeben werden, wenn sich die Werte nicht ändern und die eigenen States muss man auch nicht bekannt geben, da die ja schon in Deinem Broker existieren. Das wäre nur dann sinnvoll, wenn sich viel im iobroker geändert hat und Dein eigentlicher Broker mit dem Du Dich verbindest nicht verfügbar wäre.
-
@mickym Schon mal vielen Dank für die Hilfe und Erklärung - sehr hilfreich
Ich muss die Erklärung ein paar mal lesen bis ich teilweis verstehe was Du meinst - aber es wird
Ich hab jetzt die Settings soweit geändert.
Also muss ich jetzt aber noch einen Server auf dem localhost haben/installieren wenn ich es richtig verstanden habe?
-
@steffen-ermisch Meines Erachtens hast Du schon einen Broker/Server (deswegen meinte ich mosquitto das ist ein mqtt-Server Broker ausserhalb von iobroker, aber vielleicht hast Du auch was anderes - jedenfalls meldest Du Dich ja via mqtt auf port 1883 irgendwo an) , sonst hätte der Adapter ja gar nicht funktionieren können. Du hast den ja lt. Deinem Screenshot als Client/Subscriber definiert.
Also nichts installieren. Auf der 1. Seite dieser Adapter Einstellungen hast Du ja Deine Anmeldedaten eingegeben.
EDIT:
Was natürlich ganz chaotisch wäre, wenn DU noch einen Sonoff Adapter laufen hast oder ähnliches. Dann verbindest Du Dich nämlich mit Deinem mqtt Client auf diesen Adapter. Das wird früher oder später schief gehen.
Aber auch das bekommen wir beide gerade gezogen.Du kannst ja versuchen, ob Du jetzt schon Deine Heizung steuern kannst - aber ich rate Dir eigentlich ab in dieser Konstellation Dein System betreiben, in dem irgendein Adapter für Dich mqtt-Broker spielt.
Es gibt dann folgende Möglichkeiten:
- Du verabschiedest Dich von den Adaptern, die Dir einen mqtt Broker bereit stellen (meine Präferenz, aber mit dem meisten Umstellungsaufwand verbunden).
- Du installierst Dir noch mosquitto - lässt ihn auf einem anderen Port laufen, dann musst halt nur in Deiner Heizung und im mqtt Adapter einen anderen Port einstellen. (Geht schneller - ist aber viel sauberer als jetzt).
Musst halt wissen wo Du hin willst.
EDIT2: Falls Du wirklich einen sonoff oder sonstigen Adapter als mqtt-Broker unwissentlich nutzt - dann sollte beim Stoppen dieser Adapter Dein mqtt Adapter gleich gelb werden.
-
@mickym Könnte es sein das bei der installation des evohome2mqtt ein broker mit installiert wird?
Und ja - es wird wahrscheinlich chaotisch - es läuft auch ein Sonoff Adapter für die Tasmota geflashten Steckdosen
Der Port im Sonoff Adapter ist 1884 - das ist auch die MQTT Einstellungen der Steckdosen. MQTT läuft auf 1883. Hab gerade mal die Steckdose auf 1884 umgestellt und die Steckdose taucht (natürlich) in den MQTT Objekten auf. Nur sind die Objekte nicht so schön schon aufgeschlüsselt sondern alle Infos stehen in langen Strings und die müsste ich erst parsen usw...
Der Adapter der die Evohome Daten abgreift ist halt die einzige Möglichkeit die ich gefunden habe an die Daten heranzukommen. Würde ich mich von dem adapter verabschieden wird das wahrscheinlich nichts mehr mit dem Datenabgriff.
Die Heizung über den IO Broker zu steuern ist an für sich Spielerei da Evohome ein Display mitbringt zum zentralen steuern der Temperatur. Dachte nur es kann nicht so schwer sein das zu implementieren.Mir fehlt echt noch ein Grundverständniss wie die Prozesse ablaufen...
-
Na das ist auch nicht weiter schlimm. Muss ja nur wissen - also eigentlich sollte Deine Heizung dann schon zu steuern sein, dann ist halt der Adapter, der die Evohome Daten abgreift Dein Broker. Aber dann sollte es jetzt eigentlich mit den geänderten Einstellungen des mqtt-Adapters schon gehen. Hast Du probiert?
Das Parsen ist übrigens nicht schlimm - nur mal so generell. Da muss man keine Strings analysieren.
Aber das ist ein anderes Thema. Wenn Du mit dem Adapter zufrieden bist, ist ja gut. Ich hatte nur in einem anderen Thread, der wollte den aktuellen Stromverbrauch über den Status 8 in Tasmota abfragen und das ging halt mit dem Adapter nicht, aber dann kann man auch noch http nutzen, wenn man kein mqtt nutzen will.
@steffen-ermisch sagte in evohome2mqtt Temperatur einstellen:
@mickym Könnte es sein das bei der installation des evohome2mqtt ein broker mit installiert wird?
Ich weiß nicht, was Du noch installiert hast.
In der github Beschreibung steht:
This node.js application is a bridge between the Evohome system and a mqtt server.was hast Du denn in der Applikation für einen Port eingegeben?
Ggf. müsste man halt schauen, wer denn Deinen 1883 Port belegt hat - Shelly Adapter, keine Ahnung noch wer?
Du kannst ja mal
sudo netstat -l -p
auf der Kommandozeile eingeben.
Dann solltest Du eine ähnliche Ausgabe bekommen
sudo netstat -l -p Aktive Internetverbindungen (Nur Server) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:1880 0.0.0.0:* LISTEN 2089/node-red tcp 0 0 localhost:41401 0.0.0.0:* LISTEN 840/perl tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN 21237/mosquitto tcp 0 0 localhost:9000 0.0.0.0:* LISTEN 685/iobroker.js-con tcp 0 0 localhost:9001 0.0.0.0:* LISTEN 685/iobroker.js-con tcp 0 0 0.0.0.0:8083 0.0.0.0:* LISTEN 840/perl tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 714/sshd tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN 437/cupsd tcp6 0 0 [::]:1883 [::]:* LISTEN 21237/mosquitto
Damit siehst Du welcher Prozess Dir 1883 bereitstellt, wenn da iobroker drinsteht, dann ist es ein Adapter.
-
@mickym Den Ansatz mit dem Port habe ich auch gerade verfolgt - aber von der Logik her da der Datenabgriff funktioniert müsste das senden auch funktionieren. Oder? ISt ja der gleiche Port.
Ich hab gerade die Issueliste bei Git etwas gefunden was am Ende dazu passt - und vor zwei Tagen wurde für den adapter ein Update bereitgestellt. Jetzt muss ich mal schauen das ich den Adapter geupdatet bekomme - vielleicht liegt es daran.
Nichtdestotrotz ist bei mir wahrscheinlich etwas nicht ganz sauber aufgesetzt.
Hier das Ergebnis für den portcheck
Aktive Internetverbindungen (Nur Server) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN 373/deCONZ tcp 0 0 0.0.0.0:domain 0.0.0.0:* LISTEN 550/dnsmasq tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 545/sshd tcp 0 0 raspiobroker.fritz:1880 0.0.0.0:* LISTEN 4881/node-red tcp 0 0 localhost:omniorb 0.0.0.0:* LISTEN 627/influxd tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN 622/mosquitto tcp 0 0 0.0.0.0:https 0.0.0.0:* LISTEN 373/deCONZ tcp 0 0 0.0.0.0:1884 0.0.0.0:* LISTEN 28706/io.sonoff.0 tcp 0 0 localhost:9000 0.0.0.0:* LISTEN 628/iobroker.js-con tcp 0 0 localhost:9001 0.0.0.0:* LISTEN 628/iobroker.js-con tcp6 0 0 [::]:tproxy [::]:* LISTEN 921/io.admin.0 tcp6 0 0 [::]:8082 [::]:* LISTEN 3079/io.web.0 tcp6 0 0 [::]:domain [::]:* LISTEN 550/dnsmasq tcp6 0 0 [::]:8086 [::]:* LISTEN 627/influxd tcp6 0 0 [::]:ssh [::]:* LISTEN 545/sshd tcp6 0 0 [::]:3000 [::]:* LISTEN 626/grafana-server tcp6 0 0 [::]:1883 [::]:* LISTEN 622/mosquitto udp 0 0 0.0.0.0:domain 0.0.0.0:* 550/dnsmasq udp 0 0 0.0.0.0:bootps 0.0.0.0:* 19423/io.radar2.0 udp 0 0 0.0.0.0:bootpc 0.0.0.0:* 880/dhclient udp 0 0 0.0.0.0:bootpc 0.0.0.0:* 452/dhcpcd udp 0 0 0.0.0.0:53421 0.0.0.0:* 26274/io.mihome-vac udp 0 0 0.0.0.0:mdns 0.0.0.0:* 364/avahi-daemon: r udp 0 0 0.0.0.0:45914 0.0.0.0:* 364/avahi-daemon: r udp 0 0 0.0.0.0:1900 0.0.0.0:* 3150/io.deconz.1 udp 0 0 0.0.0.0:1900 0.0.0.0:* 373/deCONZ udp6 0 0 [::]:dhcpv6-client [::]:* 452/dhcpcd udp6 0 0 [::]:domain [::]:* 550/dnsmasq udp6 0 0 [::]:mdns [::]:* 364/avahi-daemon: r udp6 0 0 [::]:1900 [::]:* 3150/io.deconz.1 udp6 0 0 [::]:1900 [::]:* 3150/io.deconz.1 udp6 0 0 [::]:1900 [::]:* 3150/io.deconz.1 udp6 0 0 [::]:1900 [::]:* 3150/io.deconz.1 udp6 0 0 [::]:38326 [::]:* 364/avahi-daemon: r raw 0 0 0.0.0.0:icmp 0.0.0.0:* 7 19423/io.radar2.0 raw6 0 0 [::]:ipv6-icmp [::]:* 7 19423/io.radar2.0 raw6 0 0 [::]:ipv6-icmp [::]:* 7 381/NetworkManager raw6 0 0 [::]:ipv6-icmp [::]:* 7 452/dhcpcd
-
@steffen-ermisch tada - Du hast bereits einen mosquitto Server installiert!!! - Super! Also müsste es eigentlich alles gehen. Trag einfach noch mal den JSON in Deinen Datenpunkt ein!
Und ja die gesamte Kommunikation zwischen Deinem mosquitto Server und dem mqtt Client Adapter läuft über 1883. Sowohl Senden wie Empfangen.Du kannst ja mal in das Log Verzeichnis von mosquitto wechseln und da die letzten Aktivitäten anschauen:
cd /var/log/mosquitto
Dort gibst dann ein:
sudo tail -100 mosquitto.log
Dann siehst Du in welche Richtung welche Kommunikation gelaufen ist.
Nachdem Du ja den mqtt Adapter so wie ich ihn konfiguriert habe - eingestellt hast, siehst Du dann im LOG sicher so einen Eintrag:
1616176650: New client connected from 127.0.0.1 as mqttClientIobrokerPublishSubscribeAll
Du kannst Deinen Adapter aber übrigens auch gerne einen anderen Namen geben.
Auf github gerade gelesen:
Dein Heizung sollte sich unter dem Namen "evohome" im mosquitto.log melden!
siehe in dem Usage Kasten
:
-n, --name instance name. used as mqtt client id and as topic
prefix [default: "evohome"]Zum Schluss aber noch eine Bemerkung:
Wie Dein mosquitto Server auf Dein System gekommen ist, weiß ich nicht - aber irgendjemand muss ihn ja darauf installiert haben.
. Vielleicht hast Du ja noch eine andere Anleitung genutzt.
-
@mickym Also ich hab jetzt den evohome Adapter von 1.1.1 auf 1.1.2 geupgradet - so wie den ganzen Raspi auch mal wieder geupgradet und gebootet - leider geht immernoch keine Temperatur Einstellung.
Nur schräg ist auf einmal tauch ein neues Object "bad" auf - und nicht mehr unter evohome/ sondern evohome2mqtt/
Dort kann ich aber nicht den Wert ändern.btw...Ich sehe auch in dem mosquitto log kein evohome - und viele Socket errors
pi@raspiobroker:/var/log/mosquitto $ sudo tail -100 mosquitto.log 1616157012: Socket error on client mqttjs_dcf85ed1, disconnecting. 1616157120: New connection from 127.0.0.1 on port 1883. 1616157120: New client connected from 127.0.0.1 as mqttjs_7d06bae1 (c1, k60). 1616157360: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616158088: Socket error on client mqttjs_7d06bae1, disconnecting. 1616158200: New connection from 127.0.0.1 on port 1883. 1616158200: New client connected from 127.0.0.1 as mqttjs_12ff7ac0 (c1, k60). 1616159161: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616159170: Socket error on client mqttjs_12ff7ac0, disconnecting. 1616159280: New connection from 127.0.0.1 on port 1883. 1616159280: New client connected from 127.0.0.1 as mqttjs_4153e3c3 (c1, k60). 1616160248: Socket error on client mqttjs_4153e3c3, disconnecting. 1616160360: New connection from 127.0.0.1 on port 1883. 1616160360: New client connected from 127.0.0.1 as mqttjs_d7e78807 (c1, k60). 1616160962: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616161327: Socket error on client mqttjs_d7e78807, disconnecting. 1616161440: New connection from 127.0.0.1 on port 1883. 1616161440: New client connected from 127.0.0.1 as mqttjs_6108e785 (c1, k60). 1616162407: Socket error on client mqttjs_6108e785, disconnecting. 1616162520: New connection from 127.0.0.1 on port 1883. 1616162520: New client connected from 127.0.0.1 as mqttjs_a43c7d05 (c1, k60). 1616162763: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616163487: Socket error on client mqttjs_a43c7d05, disconnecting. 1616163600: New connection from 127.0.0.1 on port 1883. 1616163600: New client connected from 127.0.0.1 as mqttjs_bf78f1cf (c1, k60). 1616164564: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616164567: Socket error on client mqttjs_bf78f1cf, disconnecting. 1616164680: New connection from 127.0.0.1 on port 1883. 1616164680: New client connected from 127.0.0.1 as mqttjs_a9d31839 (c1, k60). 1616165647: Socket error on client mqttjs_a9d31839, disconnecting. 1616165760: New connection from 127.0.0.1 on port 1883. 1616165760: New client connected from 127.0.0.1 as mqttjs_088b8503 (c1, k60). 1616166365: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616166727: Socket error on client mqttjs_088b8503, disconnecting. 1616166840: New connection from 127.0.0.1 on port 1883. 1616166840: New client connected from 127.0.0.1 as mqttjs_99688efa (c1, k60). 1616167807: Socket error on client mqttjs_99688efa, disconnecting. 1616167920: New connection from 127.0.0.1 on port 1883. 1616167920: New client connected from 127.0.0.1 as mqttjs_00bc841e (c1, k60). 1616168166: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616168887: Socket error on client mqttjs_00bc841e, disconnecting. 1616169000: New connection from 127.0.0.1 on port 1883. 1616169000: New client connected from 127.0.0.1 as mqttjs_c0e94606 (c1, k60). 1616169967: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616169967: Socket error on client mqttjs_c0e94606, disconnecting. 1616170080: New connection from 127.0.0.1 on port 1883. 1616170080: New client connected from 127.0.0.1 as mqttjs_ccb0c1a5 (c1, k60). 1616171047: Socket error on client mqttjs_ccb0c1a5, disconnecting. 1616171160: New connection from 127.0.0.1 on port 1883. 1616171160: New client connected from 127.0.0.1 as mqttjs_12019429 (c1, k60). 1616171768: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616172127: Socket error on client mqttjs_12019429, disconnecting. 1616172240: New connection from 127.0.0.1 on port 1883. 1616172240: New client connected from 127.0.0.1 as mqttjs_9cd6fd4a (c1, k60). 1616172293: Socket error on client mqttjs_9cd6fd4a, disconnecting. 1616172360: New connection from 127.0.0.1 on port 1883. 1616172360: New client connected from 127.0.0.1 as mqttjs_66166c3a (c1, k60). 1616173326: Socket error on client mqttjs_66166c3a, disconnecting. 1616173440: New connection from 127.0.0.1 on port 1883. 1616173440: New client connected from 127.0.0.1 as mqttjs_107b4754 (c1, k60). 1616173569: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616174135: Client iobroker.mqtt.0 disconnected. 1616174140: New connection from 127.0.0.1 on port 1883. 1616174140: New client connected from 127.0.0.1 as iobroker.mqtt.0 (c1, k1000, u'iosteffenmqtt'). 1616174217: Client iobroker.mqtt.0 disconnected. 1616174222: New connection from 127.0.0.1 on port 1883. 1616174222: New client connected from 127.0.0.1 as iobroker.mqtt.0 (c1, k1000, u'iosteffenmqtt'). 1616174408: Socket error on client mqttjs_107b4754, disconnecting. 1616174520: New connection from 127.0.0.1 on port 1883. 1616174520: New client connected from 127.0.0.1 as mqttjs_df6d276e (c1, k60). 1616174702: Client iobroker.mqtt.0 disconnected. 1616174707: New connection from 127.0.0.1 on port 1883. 1616174707: New client connected from 127.0.0.1 as mqttClientIobrokerPublishSubscribeAll (c1, k1000, u'iosteffenmqtt'). 1616175370: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616175487: Socket error on client mqttjs_df6d276e, disconnecting. 1616175600: New connection from 127.0.0.1 on port 1883. 1616175600: New client connected from 127.0.0.1 as mqttjs_2dcfa9e7 (c1, k60). 1616176254: New connection from 192.168.188.30 on port 1883. 1616176254: New client connected from 192.168.188.30 as Tasmota_3 (c1, k30, u'steffenio'). 1616176447: Socket error on client Tasmota_3, disconnecting. 1616176567: Socket error on client mqttjs_2dcfa9e7, disconnecting. 1616176680: New connection from 127.0.0.1 on port 1883. 1616176680: New client connected from 127.0.0.1 as mqttjs_d6c0d083 (c1, k60). 1616177171: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616177647: Socket error on client mqttjs_d6c0d083, disconnecting. 1616177760: New connection from 127.0.0.1 on port 1883. 1616177760: New client connected from 127.0.0.1 as mqttjs_7cb1a449 (c1, k60). 1616178725: Socket error on client mqttjs_7cb1a449, disconnecting. 1616178972: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1616179181: mosquitto version 1.5.7 terminating 1616179198: mosquitto version 1.5.7 starting 1616179198: Config loaded from /etc/mosquitto/mosquitto.conf. 1616179198: Opening ipv4 listen socket on port 1883. 1616179198: Opening ipv6 listen socket on port 1883. 1616179321: New connection from 127.0.0.1 on port 1883. 1616179321: New client connected from 127.0.0.1 as mqttClientIobrokerPublishSubscribeAll (c1, k1000, u'iosteffenmqtt'). 1616179741: New connection from 127.0.0.1 on port 1883. 1616179741: New client connected from 127.0.0.1 as mqttjs_5b1de9ae (c1, k60). 1616179829: Socket error on client mqttjs_5b1de9ae, disconnecting. 1616179920: New connection from 127.0.0.1 on port 1883.
-
@steffen-ermisch sagte in evohome2mqtt Temperatur einstellen:
Nur schräg ist auf einmal tauch ein neues Object "bad" auf - und nicht mehr unter evohome/ sondern evohome2mqtt/
Dort kann ich aber nicht den Wert ändern.Nun das ist nicht verwunderlich, das ist Dein verunglückter Versuch von vorher - da hab ich Dir das mit dem Prefix ja erklärt.
Dieser Abfall steht noch in Deiner mosquitto.db in deinem mosquitto Server . siehe mein Post: https://forum.iobroker.net/topic/43396/evohome2mqtt-temperatur-einstellen/10?_=1616180134345.Es gibt jedenfalls noch irgendetwas auf Deiner lokalen Maschine außer dem mqtt-client, was noch Deinen Broker zugreifen will. Hast Du Dir mal das gesamte log angeschaut, ob Du den evohome findest?
Ich weiß nicht, was Du noch für Adapter hast - aber hast Du mal geschaut, ob da nicht auch einer über mqtt port 1883 kommunizieren will. Es muss ja was auf der lokalen Maschine sein. Hast Du Deinen mosquitto Server so eingestellt, dass man einen Benutzernamen braucht? - Bei Deinem mqtt-Client Adapter gibst Du ja einen Namen mit, bei einer Tasmota ebenfalls. Die Geräte, die jedoch Probleme machen kommen ohne Namen daher.
Kann es sein, dass Du bei Deiner Evo Kommunikation keinen Namen mitgibst?
evohome2mqtt 0.0.0-development Usage: evohome2mqtt [options] Options: --user Your evohome username [required] --password Your evohome password [required] -l, --logging Logging level [choices: "error", "warn", "info", "debug"] [default: "info"] -m, --mqtt mqtt broker url. See https://github.com/svrooij/evohome2mqtt#mqtt-url [default: "mqtt://127.0.0.1"] -n, --name instance name. used as mqtt client id and as topic prefix [default: "evohome"] -p, --polling-interval evohome polling interval in seconds [default: 30] --app Specify a different application ID (EXPERT?) [default: "91db1612-73fd-4500-91b2-e63b069b185c"] -h, --help Show help [boolean] --version Show version number [boolean]
-
@mickym Ich schaue am Wochenende weiter - jetzt ist erstmal gut damit
. Vielen Dank für Deine Hilfe und Mühe auf jeden Fall.