NEWS
Beca Thermostate einbinden (Firmware-Mod)
-
@torquemaster Und das sagt mir das Thermostat per IP Adresse. Hab Firmware 1.16 und 1.18 ausprobiert.
-
@torquemaster Das sieht schon mal ganz gut aus und du warst auch fast richtig. Nur ist "Temperature" ein Read Only, was auch einleuchtend ist, denn dass ist die gemessene Raumtemperatur. Wäre ziemlich blöd wenn man die setzen könnte ...
Du hast aber "targetTemperature". Wenn du den so in den "properties" anlegst müsstest du eigentlich die gewünschte Zieltemperatur am Thermostat setzen können. Fernermittels Datenpunkt deviceOf --> true/false sollte sich das Thermostat Ein-/Ausschalten lassen
mittels Datenpunkt schedulesMode --> auto/off die, vermute ich mal, Zeitschaltfunktion [De-]Aktivieren lassenZumindest kann man das so herauslesen, dass das Thermostat diese Datenpunkte so subscribed.
-
@SBorg Leider bekomme ich das nicht hin, kein plan.
Hier sind meine Einstellungen:Hier rechts im Bild sieht man ja die Live Werte die sich auch ändern wenn ich die Temperatur am Thermostat ändere. Also die Kommunikation steht auf jeden Fall.
Das mit dem publish und subscribed habe ich ja vom Prinzip her schon verstanden. Ich denke ich mache einen Fehler wenn ich den neuen Datenpunkt anlege.... : (
-
@torquemaster Ok, ich sehe den Fehler. Das "Abo" läuft eigentlich unter mqtt.0.Thermo_Wohnen.things.thermostat.properties.targetTemperature, bei dir, warum auch immer ohne "things". Deswegen kann das Thermostat es nicht abonnieren.
Entweder hast du das bei Tasmota falsch editiert, oder du müsstest den Zweig so anlegen, also unter "Temperatur_Wohnen" eine Ordner "things", dann darunter einen Ordner "properties" und dann den Datenpunkt "targetTemperature". -
Du hast da einen Fehler drin - dort wo du den Wert setzen willst, ist es nur ein read-only. Bei den Thermostaten sind die Werte über den "cmnd" Zweig zu setzen. In meinem Fall kann ich alles auslesen über
thermostat/thermostatName/stat/things/thermostat/properties/
Da steht dann auch die gesetzte targetTemperature drin.
Wenn die über mqtt gesetzt werden soll, ist das allerdings ein anderer Zweig, der NUR für das Setzen der Werte da ist. Die Struktur ist gleich wie der "stat" Zweig, nur eben "cmnd" statt "stat":
thermostat/thermostatName/cmnd/things/thermostat/properties/targetTemperature
Edit: ich verstehe allerdings nicht, wieso es bei Dir den "stat/things" Teil in der Struktur gar nicht gibt - meines Wissens nach kann man das im Thermostat auch gar nicht "kaputtkonfigurieren". @SBorg hat das ja auch schon bemerkt. Was steht denn bei Dir unter "Configure Network" --> "Topic" in der Thermostatkonfiguration?
-
Hallo,
ich habe mir auch dieses Thermostat geholt und mich am Thread orientiert.
Ich habe entsprechend versucht die Objekte hinzuzufügen.
Einige funktionieren, einige nicht. Kann man nicht irgendwo einsehen, welche Subscriptions es gibt und wie sie genau heißen?
Erstelle ich beispielsweise "mode" unter cmnd, wird mir in stats ein neues mode objekt angelegt. Allerdings nicht unter properties sondern eine ebene darüber.
Stelle ich in cmnd targetTemperature auf 16.5 wird dieser Wert auch in stats in dem Objekt unter thermostat gesetzt. Auch am Thermostat wird dieser Wert eingestellt. Die targetThemperature in stats/.../properties/targetTemperature, also eine Ebene tiefer verändert sich jedoch nicht. Dieser Wert wird erst geändert wenn ich es manuell am Thermostat einstelle. Dann ändert sich dafür aber der Wert des Objektes /stats/.../thermostate/targetTemperature nicht...Irgendwie habe ich da wohl noch einen Fehler drin.
Kann mir da jemand helfen
-
@sauerm
Welche Version der Firmware verwendest Du denn? Ich meine, dass die Werte unterhalb von "properties" erst korrekt regelmäßig mit der letzten Beta gefüllt werden. Vorher muss man den Properties Schlüssel im JSON Format auslesen/angucken, wenn man zuverlässig die aktuellen Werte will.
Die JSON Variante ist auch der Standard, die einzelnen Werte unterhalb von Properties als "Klartext" hat er als Hilfe nur "dazugebastelt". Aber wie gesagt, in der letzten Beta sollte man die eigentlich verwenden können.Und Du musst eigentlich keine Objekte hinzufügen, das wird alles von allein bevölkert (zumindest der Status). Die "cmnd" Zweige bekommst Du, wenn Du per MQTT Client die entsprechenden Befehle absetzt.
Dabei kannst Du einfach nur "stat" gegen "cmnd" tauschen, um alle gültigen Befehle zu haben. Also alles was es als "stat" gibt, gibt es glaube ich auch als "cmnd".In meinem Post über deinem Beitrag ist auch ein Beispiel dazu.
-
@berlinerbolle said in Beca Thermostate einbinden (Firmware-Mod):
MQTT Client
Ah, okay, vielen Dank!
Sorry, bin noch ganz neu in mqtt.
Ich verwende die letzte stable 1.18Also müsste ich zusätzlich zum mqtt-server, noch eine client instanz aufmachen über die ich dann Abfragen absetzen kann?
Ich habe deinen Post so interpretiert, dass so die zusätzlich Objekte angelegt werden müssen -
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...
-
Und so sieht dann die Log aus: (endlos)
-
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?
-