NEWS
Beca Thermostate einbinden (Firmware-Mod)
-
Mir fällt grad auf - ich habe die 1.18 von fashberg drauf. Gab es hier jetzt noch eine separate Version von @Wal?
Kann man eine davon irgendwie in sonoff einbinden? ich würde gern einen meiner adapter loswerden wollen -
@sauerm
Nimm ruhig die 1.19 von fashberg, da funktioniert das zuverlässig mit den separaten properties.
Du musst dir nicht extra eine zweite MQTT Instanz installieren, um Kommandos abzusetzen. Dafür ist (zum Beispiel) MQTT.fx besser geeignet, gibt es auch für Windows. Damit kannst Du auch gleichzeitig lauschen, was so alles in MQTT bei dir los ist.
Hast Du mal geschaut, ob zumindest das JSON Objekt mit allen Properties geändert wird, wenn du die Temperatur am Thermostat änderst? Also was bei dir home/livingr/wthermostat-main/stat/things/thermostat/properties ist? Da sind auch alle properties drin, nur eben alle auf einmal in einem JSON formatierten String.
-
Moin,
ich muss mich hier mal mit einklinken, da ich bei diesem Thema nicht weiter komme und Hilfe benötige.
Ist-Zustand:
- Beca-Thermostate vom Typ BHT-002GALW (funktionieren Top)
- Firmware geflasht mit Fashberg 1.19 beta (funktioniert Top)
- Aliase angelegt und den ganzen Kram im IOT-Adapter verankert, so dass ich mit Alexa darauf zugreifen kann (funktioniert, aber nur im Read-Modus)
- wenn ich Alexa sage, dass die Target-Temp soundso viel Grad Celsius sein soll, wird der Befehl auch problemlos in ioBroker übertragen und angezeigt, nur nach ein paar Sekunden, wenn das Thermostat neue Werte an den ioBroker schickt, wird der Wert mit dem im Thermostat eingestellten überschrieben
Ich bekomme es einfach nicht hin, wie ich per MQTT (bzw. danach per Sprachbefehl an Alexa) den Befehl dauerhaft ans Thermostat senden kann.
Ich benötige mal eine Schritt für Schritt Anleitung.
Was muss ich wie und wo genau anlegen, damit ich zu dem von dir beschriebenen "cmnd-Zweig" komme?
Alles was ich bisher über MQTT weiß - und das ist sehr wenig - hilft mir bei diesem Thema nicht weiter. -
@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.