CCU Skript um eine Variable im ioBroker abzufragen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Benutzeravatar
WRadebeul
Beiträge: 143
Registriert: 29.01.2018, 13:53
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal

Re: CCU Skript um eine Variable im ioBroker abzufragen

Beitrag von WRadebeul » 08.10.2023, 10:47

NickHM hat geschrieben:
08.10.2023, 08:52
Ondas[tm] hat geschrieben:
07.10.2023, 14:27

Aber: Das ist der von mir präferierte Weg, klar kommt man anders auch zu Ziel ;-)
Ich frage mich schon seit Anfang dieses Beitrages, warum nicht in ioBroker die CCU Variable beschrieben wird.
Statt von der CCU aus regelmäßig abzufragen.
Das wäre auch mein Ansatz gewesen.
Ihr habt völlig recht! Euer beschriebener Weg wäre der Richtige.
Aber ich würde nicht nach der anderen Richtung fragen wenn es auch anders gehen würde.

Ich nutz den Neo Creator zu Visualisierung (ich weiß, nicht der ideale Weg, aber bei mir historisch so gewachsen)
In Neo nutze ich Makros welche Variablen abfragen sollen, die NUR im ioBroker liegen.

Also, nachdem das geklärt ist, kann mir nun auch einer bei dem Skript helfen ?
Raspberrymatic, iOBroker, Homematic Classic, Homematic Homebrew, CUL 868 für Somfy Rolladen, Sonoff 3.0 ZigBee, NeoCreator zur Visualisierung, Mediola 4+ Gateway für IR, InfluxDB & Grafana

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: CCU Skript um eine Variable im ioBroker abzufragen

Beitrag von manfredh » 08.10.2023, 11:04

WRadebeul hat geschrieben:
08.10.2023, 10:47
Ihr habt völlig recht! Euer beschriebener Weg wäre der Richtige.
Aber ich würde nicht nach der anderen Richtung fragen wenn es auch anders gehen würde.

Ich nutz den Neo Creator zu Visualisierung (ich weiß, nicht der ideale Weg, aber bei mir historisch so gewachsen)
In Neo nutze ich Makros welche Variablen abfragen sollen, die NUR im ioBroker liegen.
Auch wenn ich weiter darauf herumreite:

Warum kannst du diese Variablen nicht auch in der CCU anlegen und dann vom ioBroker aus beschreiben.

Mit Blockly wäre das ein Einzeiler (bzw. "Ein-Klicker") ohne jegliche tiefere Programmierkenntnisse.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

Benutzeravatar
WRadebeul
Beiträge: 143
Registriert: 29.01.2018, 13:53
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal

Re: CCU Skript um eine Variable im ioBroker abzufragen

Beitrag von WRadebeul » 08.10.2023, 11:12

Weil NEO mist ist !!
Glaub mir ich habe es versucht, für meinen Anwendungsfall geht NUR diese Lösung
und in NEO kenn ich mich zwischenzeitlich sehr gut aus.
Ich Scheue halt den Umstieg und die Umprogrammierung in VIS.
Raspberrymatic, iOBroker, Homematic Classic, Homematic Homebrew, CUL 868 für Somfy Rolladen, Sonoff 3.0 ZigBee, NeoCreator zur Visualisierung, Mediola 4+ Gateway für IR, InfluxDB & Grafana

Benutzeravatar
WRadebeul
Beiträge: 143
Registriert: 29.01.2018, 13:53
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal

Re: CCU Skript um eine Variable im ioBroker abzufragen

Beitrag von WRadebeul » 08.10.2023, 11:16

Mit Blockly wäre das ein Einzeiler (bzw. "Ein-Klicker") ohne jegliche tiefere Programmierkenntnisse.
Diese Idee hatte ich natürlich auch schon. dann müste ich aber das Blockly Programm aus NEO heraus starten und das geht nicht.
Daher der Umweg über das Auslesen der VAR mittels CCU.
Raspberrymatic, iOBroker, Homematic Classic, Homematic Homebrew, CUL 868 für Somfy Rolladen, Sonoff 3.0 ZigBee, NeoCreator zur Visualisierung, Mediola 4+ Gateway für IR, InfluxDB & Grafana

Ondas[tm]
Beiträge: 712
Registriert: 09.04.2017, 10:16
System: CCU
Wohnort: Nierstein [D]
Hat sich bedankt: 90 Mal
Danksagung erhalten: 68 Mal

Re: CCU Skript um eine Variable im ioBroker abzufragen

Beitrag von Ondas[tm] » 08.10.2023, 11:23

Nein.
Du sagst Blockly, dass es die Variable neu schreiben soll, wenn sie sich ändert.
Hatte ich aber oben schon beschrieben.
Bei dem Weg kann ich helfen, beim anderen bin ich aufgrund mangelnden Wissens raus.
Aufgrund wiederholter nerviger Werbung und "product placement" würde ich mein Haus eher entsmarten als Mediola/NEO zu kaufen.

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

Re: CCU Skript um eine Variable im ioBroker abzufragen

Beitrag von Fonzo » 08.10.2023, 12:58

WRadebeul hat geschrieben:
08.10.2023, 10:47
In Neo nutze ich Makros welche Variablen abfragen sollen, die NUR im ioBroker liegen.

Also, nachdem das geklärt ist, kann mir nun auch einer bei dem Skript helfen ?
Warum gehst Du dann einen Umweg über eine CCU und rufst die Variablen nicht direkt in NEO ab, dann brauchst Du auch kein Skript.

Benutzeravatar
WRadebeul
Beiträge: 143
Registriert: 29.01.2018, 13:53
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal

Re: CCU Skript um eine Variable im ioBroker abzufragen

Beitrag von WRadebeul » 08.10.2023, 13:21


Warum gehst Du dann einen Umweg über eine CCU und rufst die Variablen nicht direkt in NEO ab, dann brauchst Du auch kein Skript.
Weil ich in einem MAKRO einer Variablen manuell z.B. einen Text oder eine Zahl zuordnen kann,
aber dieser Variable keine Werte aus einem Gerät, daher ein Umweg wie schrieben.
Glaubt mir, ich weiß was ich mache !

Daher nochmals: wer kann mir helfen das Skript so zu korrigieren dass es funktioniert ?

Code: Alles auswählen

var x = dom.GetObject("CUxD.CUX2801001:3.CMD_EXEC").State("http://192.168.178.99:8087/getPlainValue/sourceanalytix.1.hm-rpc__0__REQ0847068__1__ENERGY_COUNTER.currentYear.consumed.01_currentDay");
dom.GetObject("Text01_CCU").State(x);

WriteLine (x);
Das Ergebnis ist TRUE, sollte aber einen Zahlenwert beinhalten
Raspberrymatic, iOBroker, Homematic Classic, Homematic Homebrew, CUL 868 für Somfy Rolladen, Sonoff 3.0 ZigBee, NeoCreator zur Visualisierung, Mediola 4+ Gateway für IR, InfluxDB & Grafana

Benutzeravatar
Black
Beiträge: 5493
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1079 Mal
Kontaktdaten:

Re: CCU Skript um eine Variable im ioBroker abzufragen

Beitrag von Black » 08.10.2023, 14:07

Normalerweise sollte ja der Weg sein, den die Kollegen auch schon beschreiben haben, dass die Middleware bestimmte Werte schreibt und nicht gepollt werden muss.

Aber wenn du ja schreibst, dass das von dir bisher eingesetzte Visualisierungs-System, dessen Namen ich nicht wiederholen möchte, Mist ist,
und eine CCU einer Visualisierung helfen muss...

ich hab das kleine Script mal eben gegen meine simple APi laufen lassen, dass tuts so mit System Exec

Code: Alles auswählen

string stderr;
string stdout;

string url= "http://192.168.x.x:8087/getPlainValue/fullybrowser.0.192_168_x_y.Info.batteryLevel";
system.Exec("wget --timeout=13 -q -O - '"  #url # "'", &stdout, &stderr) ;  
Musst halt nur gegen deinen Objektnamen noch tauschen

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

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

Re: CCU Skript um eine Variable im ioBroker abzufragen

Beitrag von Fonzo » 08.10.2023, 14:34

WRadebeul hat geschrieben:
08.10.2023, 13:21
Weil ich in einem MAKRO einer Variablen manuell z.B. einen Text oder eine Zahl zuordnen kann,
aber dieser Variable keine Werte aus einem Gerät, daher ein Umweg wie schrieben.
Ich kann das zwar was Du da konkret machst bzw. wo das genaue Problem ist, zumindest ohne einen Screenshot selbst nicht nachvollziehen. Ich persönlich setze ganz normal aus einem Makro Variablen und schalte Geräte über angebundene Systeme, ohne das ich dazu umständlich irgendwelche zusätzlichen Variablen auf einer CCU bräuchte. Wenn Du meinst, das sei bei Dir unbedingt zwingend notwendig, bzw. es geht in Deinem Fall nicht anders, dann wirst Du wohl solche Umwege gehen müssen.
Zu bevorzugen ist es dennoch dann die Variable nicht mit einem Skript von der CCU abzuholen. Das externe System sollte ja wissen, wann sich eine Variable ändert und diese dann eben, wenn unbedingt notwendig, auf einer CCU auch aktualisieren können. Dies ist zumindest wesentlich besser, als ständig von der CCU aus anzufragen ohne zu wissen, ob dies überhaupt notwendig ist bzw. sich der Status überhaupt geändert hat.

Benutzeravatar
WRadebeul
Beiträge: 143
Registriert: 29.01.2018, 13:53
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal

Re: CCU Skript um eine Variable im ioBroker abzufragen

Beitrag von WRadebeul » 08.10.2023, 18:11

Ich kann das zwar was Du da konkret machst bzw. wo das genaue Problem ist, zumindest ohne einen Screenshot selbst nicht nachvollziehen.
Ich versuche mal meinen Ansatz und das sich daraus ergebende Problem darzustellen. Vielleicht sehe ich den Wald vor lauter Bäumen nicht mehr.
Und da Du (FONZO) ja der NEO / Mediola Spezialist bist, wirst Du bestimmt die Lösung schneller erkennen / finden als ich.
---
Ich Erfasse mit dem ioBroker Verbrauchsdaten und visualisiere die mit Grafana.
Die Grafiken von Grafana binde ich in NEO über das PopUp 1 ein - siehe Bild.
Durch die untere Button Reihe kann ich zwischen verschiedenen Grafiken hin und her schalten.
Jahres-, Monats-, Wochen-, Tages- und aktuelle Leistungsansicht. ist wird hierzu immer wieder das PopUp 1 verwendet !!!
Ich realisiere dieses durch ein Makro:
- das aktuelle PopUp 1 wird geschlossen
- den Überschriften weise ich neue Texte zu (Text_01, Text_02 und Text_03)
- nun wird das PopUp 1 erneut aufgerufen und mit der entsprechenden Grafik (z.B. Wochenverbrauch) aufgerufen.
soweit so gut !

Problem:
Die unten gezeigten aktuellen Werte "Aktuell" sollen entsprechend des gewählten Zeitraumes veränderlich angezeigt werden.
Hierzu füge ich ein Texfeld mit Status ein - Status ist die Variable "Aktuell".
Im Makro kann ich dieser Variable einen Wert zuweisen, z.B. Text oder Zahl.
Dieser Wert mit aktuellen Werten ändert sich ja bei jedem neuen Aufruf des PopUp's - z.B. Woche, Monat, etc.
Im Markr kann ich der Variablen "Aktuell" aber keinen Wert aus einem Gerät oder Zählerstand zuweisen.

Mein Lösungsansatz hierzu war:
im Makro für das aufrufen des PopUp auch ein CCU Programm aufzurufen, welches dann den Zählerstand oder dgl. aus dem ioBroker abruft
und in die Variable "Aktuell" schreibt, so dass diese bei Aufruf des PopUp immer den zugehörigen Wert darstellt.

Warum das Ganze ? Ich wünsche mir 1 universelles PopUp, welches ich individuell mit Text, Werten und Grafiken bespielen kann.

Euer Lösungsansatz - regelmäßigen Abständen oder bei Änderung des Zählerstandes ein Blockly
Programm ausführen zu lassen, welche die Variable "Aktuell" beschreibt- funktioniert meiner
Meinung nach nicht, da ich ja nicht im Vorwege weiß womit ich die Variable "Aktuell" beschreiben soll.
Diese ist erst nach drücken eines Buttons im PopUp 1 bekannt.

By the way - wenn ich schon den NEO Spezialisten am Rohr habe:
- Kann ich in Zahlen >999 ein 1.000 Punkt darstellen ?
Dateianhänge
Makro.png
Makro.png (19.87 KiB) 723 mal betrachtet
popup1.png
Raspberrymatic, iOBroker, Homematic Classic, Homematic Homebrew, CUL 868 für Somfy Rolladen, Sonoff 3.0 ZigBee, NeoCreator zur Visualisierung, Mediola 4+ Gateway für IR, InfluxDB & Grafana

Antworten

Zurück zu „HomeMatic allgemein“