parseJSON mit Alphafeldern?

Der CCU-Jack als REST- und MQTT-Schnittstelle für die CCU und virtuelle Geräte für das IoT

Moderator: Co-Administratoren

Fonzo
Beiträge: 7440
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 570 Mal

Re: parseJSON mit Alphafeldern?

Beitrag von Fonzo » 01.11.2024, 18:40

Baxxy hat geschrieben:
01.11.2024, 18:34
Ich persönlich bevorzuge das Push der Geräte an den Server, aber wenn's nicht anders geht dann eben zyklisches Pollen.
Es geht ja durchaus auch anders, aber offensichtlich nicht mit CCU Jack zur Zeit. Also hat man die Wahl das direkt über HTTP Abfragen aus NEO an das Gateway zu lösen oder aber ein System mit einem NEO Plugin anzubinden, dass das Gerät per MQTT ausliest und dann die Daten des Geräts im Gerätemanager zu importieren.

Der erste Ansatz per HTTP kostet persönliche Zeit und ein gewisses technisches Verständnis bzw. man muss sich halt in die REST API einlesen. Der zweite Ansatz über ein NEO Plugin ist der deutlich komfortablere und schnellere, kostet aber Geld in der Anschaffung, je nachdem was für ein NEO Plugin man benutzt bzw. was für ein System man dazu anbindet.

Benutzeravatar
Henke
Beiträge: 1647
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 166 Mal
Danksagung erhalten: 353 Mal

Re: parseJSON mit Alphafeldern?

Beitrag von Henke » 01.11.2024, 18:53

NodeRed - kostenlos und ein Flow, der auf ein bestimmtes Topic wartet ist, sowie die Verarbeitung, in wenigen Minuten erledigt.
Das ganze dann aber danach nach Neo oder die CCU weiterzuleiten ist zwar einfach, aber ungefähr so als wenn ich von einem Luxussegelboot auf ein Ruderboot mit Leck umsteige.

Mathias
Beiträge: 1847
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 66 Mal
Danksagung erhalten: 282 Mal
Kontaktdaten:

Re: parseJSON mit Alphafeldern?

Beitrag von Mathias » 01.11.2024, 21:33

So Leute, macht mal bitte einen Reset.

Der Anwendungsfall kann natürlich mit dem CCU-Jack gelöst werden, und ich denke, mit weniger Aufwand als die bisherigen Vorschläge, wie eine Kombination aus RedMatic, IP-Symcon, Node, Javascript, CCU-Skript, mediola, jq, ... (Wenn natürlich jemand die genannten Sachen im Einsatz hat und sich mit diesen gut auskennt und sich wohl fühlt, so soll er diesen Anwendungsfall natürlich damit lösen. Der CCU-Jack hat eher eine andere Anwendergruppe im Blick.)

Der CCU-Jack kann die komplette MQTT-Payload als Zeichenkette in einer Systemvariablen empfangen, wenn der Sender ein bestimmtes Topic verwendet (sysvar/set/<ISE-ID>)! In der Web-UI des CCU-Jacks ist das entsprechende Topic auch bei den Eigenschaften der Systemvariablen zu finden.

Die erste Frage ist also: Kann das BBQkees-Gateway so konfiguriert werden, dass es auf ein bestimmtes Topic sendet.

Wenn dies nicht möglich ist, dann geht es folgendermaßen:

Was bedeutet denn eine Zeichenkette die entweder "ein" oder "aus" ist? Das ist keine beliebige Zeichenkette sondern ein Wert mit zwei Zuständen: Ein digitaler Wert. Für digitale Werte wird im CCU-Jack dann der Kanal "MQTT Fenster-/Türkontakt" entsprechend konfiguriert .

Wenn jetzt eine Variable mehr als zwei verschiedene Zeichenketten annehmen kann, so können die Texte mit einem TEMPLATE auf eine Zahl (0, 1, 2, usw.) abgebildet werden. Dies funktioniert mit dem "MQTT Analogwertempfänger". Wenn Texte für die Anzeige benötigt werden, so kopiert man sich den Wert per HM-Skript in eine Systemvariable vom Typ Werteliste und benennt die einzelnen Zustände dort.

Die Werte stehen dann also in der CCU zur Verfügung. Die gewünschte Darstellung muss dann in AIO NEO erfolgen, oder ein HM-Skript formatiert die Werte und schreibt sie in eine Zeichenkettenvariable.
Baxxy hat geschrieben:
01.11.2024, 12:27
Fonzo hat geschrieben:
01.11.2024, 12:02
Das ist dann ein Problem von CCU Jack, es muss halt die JSON Antwort in eine Variable vom Typ String abspeichern können.
Das ist keine schlechte Idee.
Ich werde mal Mathias fragen ob sich sowas implementieren lässt.
Es funktioniert, wenn ein bestimmtes Topic verwendet wird (siehe am Anfang vom Beitrag). Wenn ein beliebiges Topic verwendet werden soll, muss dieses irgendwo konfiguriert werden können. Wäre es eine Lösung wenn das Topic zusätzlich in der Beschreibung der SysVar angegeben werden kann, z.B. "Meine bisherige Beschreibung der SysVar; MQTT=ein/beliebiges/Topic"?

Allerdings kenne ich derzeit kein Gerät, dass tatsächlich beliebige Zeichenketten über MQTT sendet. Das sind entweder digitale Werte oder Wertelisten als Zeichenkette. Und diese sind fest in der Firmware des Gerätes hinterlegt.

Gruß
Mathias

hel400
Beiträge: 134
Registriert: 12.10.2016, 13:17
Hat sich bedankt: 11 Mal
Danksagung erhalten: 8 Mal

Re: parseJSON mit Alphafeldern?

Beitrag von hel400 » 02.11.2024, 11:05

Zunächst VIELEN DANK an ALLE Tippgeber!!

Die nunmehrige Lösung für mein Problem kam - indirekt - von Mathias.

Ich habe mir nach seiner ausführlichen Erklärung (grundsätzlich ist der Funktionsumfang vom "Jack" ja wirklich beachtlich, danke an dieser Stelle auch für diese tolle Arbeit!!) mal die Einstellbaren Parameter direkt am BBQkees-Gerät angesehen.
Und da kann man tatsächlich "alles" einstellen - vor allem aber kann man anstatt der Alphawerte ("heizen"/"Kühlen" etc..) den jeweiligen INDEX als numerischen Wert übergeben lassen.

Am BBQkees sieht das für den "Betriebsmodus" zB so aus:
#2.jpg
Wie man sehen kann, werden hier auch gleich alle Index-Werte für die jeweilige Entität angezeigt.
Somit kann ich dann den num. Index gleich auf den passenden Text umschlüsseln.

Dankeschön nochmals an alle, Problem somit gelöst.

Fonzo
Beiträge: 7440
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 570 Mal

Re: parseJSON mit Alphafeldern?

Beitrag von Fonzo » 02.11.2024, 11:13

hel400 hat geschrieben:
02.11.2024, 11:05
Wie man sehen kann, werden hier auch gleich alle Index-Werte für die jeweilige Entität angezeigt.
Nur aus Interesse, Du bekommst also jetzt einen Zahlenwert von 0 bis 6 in eine Variable auf der CCU abgelegt und weist dann im AIO CREATOR NEO eine Statusregel zu, um den passenden Text angezeigt zu bekommen?

hel400
Beiträge: 134
Registriert: 12.10.2016, 13:17
Hat sich bedankt: 11 Mal
Danksagung erhalten: 8 Mal

Re: parseJSON mit Alphafeldern?

Beitrag von hel400 » 02.11.2024, 13:19

Fonzo hat geschrieben:
02.11.2024, 11:13
Nur aus Interesse, Du bekommst also jetzt einen Zahlenwert von 0 bis 6 in eine Variable auf der CCU abgelegt und weist dann im AIO CREATOR NEO eine Statusregel zu, um den passenden Text angezeigt zu bekommen?
"Jein"
wäre auch eine Möglichkeit. Ich übertrage aber den vom CCU-Jack gelieferten Wert direkt in eine Sysvar mit Werteliste, sodass der "lesbare" Status auch auf der CCU verfügbar ist.

Antworten

Zurück zu „CCU-Jack“