NEWS
Beca Thermostate einbinden (Firmware-Mod)
-
@th16 ,
das Thermostat muss auf Hand stehen, damit das funktioniert. -
@th16 said in Beca Thermostate einbinden (Firmware-Mod):
Aliase angelegt
Was meinst Du damit? In ioBroker werden die Datenpunkte der verschiedenen Statusmeldungen der Thermostate von allein angelegt, da sie von den Thermostaten regelmäßig gesendet werden. Damit hat man dann zumindest schonmal die lesbaren Daten (.../stat/things/thermostat/properties). Zum Setzen der Werte per MQTT müssen die Werte über ".../cmnd/things/thermostat/properties" gesendet werden. Den Zweig bekommst Du am einfachsten dadurch, indem Du mit einem MQTT Client das einfach mal entsprechend raus schickst (schaue was an Daten rein kommt, kopiere die den ".../stat/things/thermostat/properties" String, und ersetze "stat" mit "cmnd". Der Teil den ich mit "..." bezeichnet habe, ist bei dir sicher ein Anderer als bei mir. Als MQTT Client kannst Du zum Beispiel MQTT.fx benutzen.
Das was @Wal ist natürlich absolut korrekt - vielleicht liegt es nur daran, dass deine Thermostate nicht auf Handbetrieb stehen?
P.S.: auf welche Art hast Du die Alexa Anbindung realisiert?
-
Das Thermostat stand auf Automatik - mein Fehler
Aber auch wenn ich es auf Hand gestellt habe, bleibt jetzt zwar der Target-Wert im ioBroker bestehen, doch dieser Wert wird nicht ans Thermostat übertragen. -
Genau das ist mein Problem, wie "schicke" ich mit einem MQTT-Client was heraus?
Alexa-Anbindung:
Als erstes hatte ich versucht im IOT-Adapter die vom Thermostat an den MQTT übertragenen Original-Werte im IOT-Adapter zu hinterlegen und diese dann als Alexa-Geräte abzurufen. Keine Chance, Alexa meint immer nur, dass sie das nicht unterstützt.
Also hab ich dann die beiden Werte (Temperatur und Target Temperatur) als ACTUAL (für aktuelle Temp) und SET (für Target Temp) als Thermostat-Aliase angelegt und diese dann in IOT eingebunden und mit Alexa verbunden - dann ging's. -
@th16 said in Beca Thermostate einbinden (Firmware-Mod):
Genau das ist mein Problem, wie "schicke" ich mit einem MQTT-Client was heraus?
Installiere dir doch einfach mal MQTT.fx und probiere es aus, das ist relativ selbsterklärend. Falls nicht, noch kurz nachlesen, wie MQTT funktioniert. Ich hatte vorher auch keinen Plan davon (bin jetzt auch kein Experte, aber es funktioniert).
Im Endeffekt sagst Du im Client dann nur, was Du schicken willst (Pfad und Wert, in meinem Fall "thermostat/thermOffice/cmnd/things/thermostat/properties/targetTemperature" und Wert z.Bsp. "23.0").
Wenn Du dadurch den Zweig in ioBroker erstmal hast, kannst Du dann auch in ioBroker die Werte setzen, und die werden über MQTT ans Thermostat geschickt - MQTT.fx brauchst Du dafür dann nicht mehr.Bei dem Alexa Teil kann ich dir aber nicht helfen, das hab ich nicht im Einsatz.
-
Ich bin wahrscheinlich doch zu doof das hinzubekommen!
So sieht es jetzt bei mir aus, nur das es nicht funktioniert:Ich kann in diesem "cmnd-Zweig" Zahlen eingeben wie ich will, es wird nicht an das Thermostat gesendet.
Aber es wird eigentlich noch schlimmer.
Denn wenn ich z.B. 17 eingebe, dann passiert erstmal gar nichts.
Nach ca. 1 Min. wird die 17 dann grün angezeigt und wieder ca. 30 Sec. später "blinkt" die 17 im Halbsekundentakt bis sie nach einer weiteren ca. 1 Min. aus dem Feld weg ist.
Das Ganze wiederholt sich ein paar Minuten später.
Als ich aber eine 18 "gesendet" habe geht das Spiel mit der 17 und der 18 im Wechsel so weiter.Also irgendwas stimmt da überhaupt nicht.
Ach so, habe es mit MQTT.fx so gemacht...
-
-
An sich sieht das doch schon gar nicht schlecht aus.
Aber es sieht fast ein bißchen so aus, als ob du da eine Event-Schleife drin hast. Was nimmst Du als MQTT Server? Den von ioBroker? Wie sind deine Einstellungen im ioBroker MQTT Adapter?
-
-
@wal said in Beca Thermostate einbinden (Firmware-Mod):
@th16,
bei dir ist es /stat/cmnd/ , es muss /cmnd/ heißen. stat und cmnd müssen in der selben ebene sein.Tatsächlich, das hab ich ganz übersehen - sorry. @Wal hat vollkommen Recht.
-
Vielen Dank, hab ich gar nicht so für voll genommen und gleich umgestellt.
Es gibt zumindest einen Teilerfolg:
Wenn ich jetzt über MQTT.fx z.B. sende "21", dann wird auch sofort die 21 im "cmnd und im stat-Zweig" angezeigt und zum Thermostat übertragen.Habe danach die Neuverknüpfung zum Alias umgestellt, so dass er auf die Target Temperatur im "cmnd-Zweig" zugreift, so das ich mit Alexa den Temperaturbefehl geben kann.
Dieser wird von Alexa auch ausgeführt und in dem "cmnd-Zweig" angezeigt (siehe Bild).
Doch weiter passiert nichts. Es findet keine Anzeige im "stat-Zweig" statt und es wird auch nichts an das Thermostat übertragen.Mühsam ernährt sich das Eichhörnchen...
PS.: mit diesen Einstellungen hat sich auch mein Log beruhigt.
-
Habe noch ein bisschen herumprobiert und auch ioBroker neu gestartet, aber ich komme da nicht weiter.
Auch wenn man direkt ins Feld eine Zahl schreibt, bleibt die zwar drin stehen, wird aber nicht an das Thermostat weitergeleitet.
Es kann doch nicht sein, dass wenn ich das gleiche Feld mit einer externen Software (MQTT.fx) mit einer Zahl befülle, dass es dann funktioniert und die Daten ans Thermostat weitergeleitet werden und wenn ich innerhalb vom ioBroker das gleiche Feld mit einer Zahl befülle (direkt reinschreibe oder per Alexa-Befehl), dass es dann nicht funktioniert???
Wo ist da der Unterschied?
Kann man das irgendwie anders machen oder umgehen, oder...?`Übrigens, am Ende der Einstellungszeile hat man ja noch ein Schraubenschlüsselsymbol:
Von dort aus kommt man z.B. in die MQTT-Client Einstellungen.
Dort ist aber bei mir nichts aktiviert oder eingetragen.
Muss da was rein? Weil ich hatte dort mal auf aktiv und auch bei publish auf aktiv umgestellt, doch leider hat es auch keinen Erfolg gehabt.Irgendwie muss es doch da eine Lösung geben, wie habt ihr das bei Euch gemacht?
-
@th16 ,
mit einem MQTT-Client funktioniert das nicht, du brauchst ein MQTT-Server. -
@th16 Das ist ein alter Adapter, den Du verwendest - man sollte ihn mE entfernen, da man mit dem anderen Adapter sowohl einen CLient als auch einen Broker zur Verfügung hat. Nimm den mqtt Adapter, der als Client und als Broker eingerichtet werden kann.
Als Broker kann ich ihn Dir zwar nicht uneingeschränkt empfehlen, da der einen BUG mit dem ACK Flag hat, deswegen empfehle ich den MQTT Adapter als CLient zu konfigurieren und dann noch mosquitto zusätzlich, aber Du kannst ja der Einfachheit halber erst mal den MQTT Adapter als Broker konfigurieren.
Allerdings gibt es wie gesagt ein Problem mit dem Broker mit dem ACK Flag, deswegen verwende ich nur noch mosquitto als Broker.
-
-
@th16 Wie gesagt - lösche am Besten den Client. Wenn Du dann keinen externen Broker hast, brauchst Du den MQTT-Broker/Client nur mit einer Instanz als Broker definieren, mehr brauchst Du nicht. Am Besten löscht Du nicht nur die Instanz des MQTT-Client Adapters sondern den ganzen Adapter.
Dein Tasmota Gerät publiziert dann alle Datenpunkte automatisch in den Broker.
-
@th16 sagte in Beca Thermostate einbinden (Firmware-Mod):
Es kann doch nicht sein, dass wenn ich das gleiche Feld mit einer externen Software (MQTT.fx) mit einer Zahl befülle, dass es dann funktioniert und die Daten ans Thermostat weitergeleitet werden und wenn ich innerhalb vom ioBroker das gleiche Feld mit einer Zahl befülle (direkt reinschreibe oder per Alexa-Befehl), dass es dann nicht funktioniert???
Das kann leider sehr wohl sein, wenn dieser Bug mit dem ACK Dir dazwischen funkt. Im Log sieht man dann immer dass irgendeine message nach 11 retries gelöscht wurde. Müsstest mal darauf achten, ob Du auch sowas im LOG hattest, dann ist das genau der Bug von dem ich sprach und der mich Wochen zerraufte Haare gekostet hat, warum ich dann auf mosquitto als Broker umgestiegen bin und das bislang nicht bereut habe, da ich mit dem mqtt-Adapter als Client volle Verfügbarkeit habe.
-
@mickym,
welcher Bug soll das sein, ich arbeite schon seit Jahren mit diesem Adapter ohne Probleme und diese Meldungen habe ich auch nicht. -
@wal sagte in Beca Thermostate einbinden (Firmware-Mod):
@mickym,
welcher Bug soll das sein, ich arbeite schon seit Jahren mit diesem Adapter ohne Probleme und diese Meldungen habe ich auch nicht.Also ich werde es nicht mehr testen, da inzwischen mir die Stabilität meines Systems nicht mehr aufs Spiel setze.
Zumindest wenn Du den Haken raus machst, dass er Zustände schicken soll - und als Broker sollte er gar nichts schicken, aber auch Änderungen akzeptieren, was er aber nicht gemacht hat, dann bekommst Du das Fehlerbild wie hier beschrieben.
Ich hab mich damals als ich meine ersten NodeRed Flows gemacht habe, immer gewundert warum ich in einen Datenpunkt nicht schreiben konnte bzw. ich konnte, aber der Wert wurde dann nach 1-2 Minuten wieder zurückgesetzt mit den Fehlermeldungen im Log die in dem Thread stehen, dass nach sovielen retries die Message gelöscht wurde. Bei mosquitto gabs 0 Probleme. Seit dem nutze ich den Adapter ja auch, aber nicht mehr als Broker.
Wenn ich den Haken gesetzt habe, dass auch Zustände gesendet werden - gings - aber das durfte nicht sein, das hat mir dann an anderen Stellen Endlosschleifen erzeugt. Sei es wie es sei, wenn Du zufrieden bist, ist ja alles gut. Ich mache ja nur darauf aufmerksam, dass es eine mögliche Fehlerquelle sein kann.
-
Also die 2 MQTT-Client-Adapter (Instanzen 0 und 1) hab ich gelöscht und zur Sicherheit den ioBroker neu gestartet.
Habe auch gleich ausprobiert ob sich eine positive Änderung bei der Target-Temp-Einstellung ergeben hat. - leider nein.
Das Log spuckt ebenfalls (noch) nichts aus was auf den von Dir beschriebenen Fehler hindeuten könnte.
Werde ich weiter beobachten...Hier sind meine Broker-Einstellungen - vielleicht liegt hier ja ein Fehler vor?
Und wie komme ich an den "mosquitto-Adapter"?
Wenn ich den im Adapter-Filter eingebe, er halte ich keine Ergebnisse.
Habe nun schon zum 2. Mal die ganze Adapter abgesucht, kein mosquitto zu finden...???