EMS Bus Gateway - Heizungssteuerung via MQTT - IPSymcon Einbindung/Modul ?

Irgendwie ist das bei mir anders. Ich hab nun mal nested getestet. Schaut auf den ersten Blick aus wie Homeassistant. Kann keinen Unterschied auf die Schnelle erkennen.
Umgeschaltet auf Single fehlen mir aber die Heizkreise (hier: hc1)

Hatte aber noch nicht wirklich Zeit, mich intensiver damit zu beschäftigen. Das Thema JSON ist von mir auch immer nach hinten geschoben worden. Schon die Verschachtelung auseinanderzudröseln muß ich mir mal zusammensuchen.

Mit einem JSON Viewer kann man das auch zumindest schön anschauen.

Gesendet von iPhone XS mit Tapatalk

Sehr merkwürdig.
Ich habe das eben noch einmal ausprobiert (FW 2.1.1.6b). Bei mir unterscheidet sich „single“ und „Nested“ nicht großartig. Einzig Thermostat_data_hc1 ist im Telegramm von Thermostat_data mit drin und das gleiche Prinzip dann bei boiler_data_ww und boiler_data.
Einzig wenn ich auf Homeassistant gehe, wird so gut wie jeder Wert einzeln übermittelt.

Das kann auch an meiner Umsetzung liegen.
Ich hab mir die Instanzen nicht über den MQTT Configurator angelegt, sondern manuell.
Jetzt hab ich mal testweise im Configurator ein paar der dort angebotenen homeassistant Instanzen angelegt. In den Nutzdaten im Fenster sehe ich auch alles aber bei meiner angelegten Instanz kommt da nix an. Auch nichts im Debug des Servers.

Aber das ist nun nicht besonders wichtig. Aktuell nutze ich nur die Anzeige der Daten und meine Werte bekomme ich.

Gesendet von iPad mit Tapatalk

Ja, anlegen hat funktioniert, aber Daten kommen in den Variablen bei mir auch nicht an. Liegt wohl am Format.
War letztendlich auch nur ein Test der Einstellung, in der Hoffnung nicht alles selber zerlegen zu müssen :wink:
Ich bleibe aber auch beim Zerlegen der JSON Strings der Devices.

Wie ist das denn bei den Buderus Kisten generell? Im Kessel ist ja der Basiscontroller (z.B. BC-35) und dann gibt es das kleine Kästchen, also RC200 oder RC 310 (rc ist wohl Raum controller).
Welches von beiden steuert nun alle Funktionen des Kessels?

Der Basiscontroller kann nur die Grundfunktionen. An/Aus, Temperatur Wasser/Heizung und Statusanzeige. Luxus kommt dann mit den RCs.

Gesendet von iPad mit Tapatalk

Wenn ich dann den Raumcontroller abnehme, was passiert dann? Läuft dann der Kessel nur noch im Start Stop Betrieb und kann nicht mehr modulieren? Aber selbst dafür müsste ja die Heizkurve die man im Raum Controller eingibt im basiscontroller liegen, denn ohne Heizkurve weiß der Kessel ja gar nicht die vorlaufsolltemperatur?

Warum solltest Du den Controller abnehmen wollen ??

Da ich keinen Brenner habe, der moduliert arbeitet, habe ich mir noch keine Gedanken gemacht.

Man könnte das RC entfernen und über den Servicekey (wenn vorhanden) auslesen, was das BC nun noch für Daten bereithält.
Da mich diese Frage aber nicht wirklich brennend interessiert (obwohl ich einen Servicekey habe) , muss ich die Aufgabe leider weiterreichen.

Gesendet von iPad mit Tapatalk

@jbr27
Magst Du mal beschreiben wie Du Deinen Watchdog realisiert hast ?

Das ist relativ trivial bei mir gelöst.
Ich habe das Watchdog-Modul aus dem Module Store installiert und einen Watchdog für die Variable boiler_data erstellt, welcher auslöst, wenn diese Variable länger als 2 Minuten nicht geupdatet wurde.

Ok, danke für die Info … schaue ich mir mal an.
Gibt es eine Beschreibung zu dem Modul ?

Hi Jungs,

irgendwie geht dieses JSON nicht an mich.
jbr27 hat ja in seinem Code schön erläutert, wie der value String zerlegt wird.
Das funktioniert auch wunderbar.

Aber hier scheitere ich:
Wie bekomme ich den Teil, der unter HC1 (erneute geschweifte Klammer in der letzten Zeile) läuft, separiert, so dass ich die Werte (seltemp, currtemp, mode, modetype…) auf Variablen verteilen kann?

Eigentlich ist JSON ja überschaubar aber mein PHP 7 Buch gibt da nicht wirklich etwas her und im Netz finde ich auch keine Beispiele.

{„id“:86,„dateTime“:„15:26:25 03/03/2021“,„errorCode“:"(0)",„lastCode“:„5L(543) 13.01.2017 09:01“,„intoffset“:0,„minexttemp“:-12,„inttemp1“:21.7,„inttemp2“:22.3,„dampedtemp“:10,„building“:„medium“,„wwmode“:„auto“,„wwcircmode“:„auto“,„hc1“:{„seltemp“:21,„currtemp“:21.8,„mode“:„day“,„modetype“:„day“,…

Den JSON kannst du mit der php Funktion json_decode($string, true); in ein PHP Array wandeln. Dieses mit print_r ausgeben und dann die passende Variable abgreifen?

Wenn du den JSON vollständig schickst, kann man das auch mal für dich ausprobieren, aber so ist es schwierig. Und dieses doofe Forum macht aus den hochstehenden auch noch tiefstehende Anführungszeichen.

Hey, das ging aber schnell.

Soweit bin ich schon. Ich hänge aber an dem HC1 Bereich.

{„id“:86,„dateTime“:„16:00:38 03/03/2021“,„errorCode“:"(0)",„lastCode“:„5L(543) 13.01.2017 09:01“,„intoffset“:0,„minexttemp“:-12,„inttemp1“:21.6,„inttemp2“:22.2,„dampedtemp“:10,„building“:„medium“,„wwmode“:„auto“,„wwcircmode“:„auto“,„hc1“:{„seltemp“:21,„currtemp“:21.6,„mode“:„day“,„modetype“:„day“,„daytemp“:21,„nighttemp“:17,„designtemp“:75,„offsettemp“:0,„holidaytemp“:17,„targetflowtemp“:37,„summertemp“:17,„summermode“:„off“,„holidaymode“:„off“,„nofrosttemp“:-5,„roominfluence“:3,„minflowtemp“:5,„maxflowtemp“:70,„flowtempoffset“:5,„heatingtype“:„radiator“,„reducemode“:„room“,„controlmode“:„outdoor“,„program“:10}}

Du hast also aus dem JSON String ein Array gemacht (2. Parameter von json_decode true)? Dann müsste folgendes Funktionieren $summertemp = $myarray[‚hc‘][‚summertemp‘];

Ich hab es umgesetzt wie hier beschrieben

Dann gibt es zwei Möglichkeiten:

$summertemp = $myobj->hc[„summertemp“];
$summertemp = $myobj->hc->summertemp;

Oje, und ich hätte gewettet, jede mögliche Variante schon durch zu haben.

Variante 2 bringt genau das erhoffte Ergebnis.
Variante 1 bringt einen Fatal error

Ich ringe noch mit mir, ob ich das wirklich lernen möchte.

Vielen Dank für die super Hilfe.

Ich habe nun seit heute auf Version 3 umgerüstet. Den Eintrag für das Format in MQTT finde ich nicht mehr. Also kein Eintrag Nested oder Single.

NACHTRAG: Doch da, ist nun nur noch ein Häkchen.

Gruß
Andreas