Verständnisproblem SetCCUSysVar

Betrieb der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

Antworten
Hans1234
Beiträge: 71
Registriert: 12.03.2014, 19:27
Hat sich bedankt: 2 Mal

Verständnisproblem SetCCUSysVar

Beitrag von Hans1234 » 18.04.2018, 09:48

Hallo Homematic-Gemeinde

Ich versuche einen Variablezustand von HCPL in einer Systemvariable der CCU zu übertragen. Es klappt nicht und ich hoffe, jemanden kann mein Denkfehler aufdecken.

SetCCUSysVar("Gast",1,"127.0.0.1")

Die Variable Gast ist in der CCU als Logikwert definiert: Wahr =1 , falsch =0
Ich kann mit der Aussage aus der Beschreibung "Daher muss unbedingt darauf geachtet werden dass die Abfragen nicht ständig in einem kürzeren Zeitintervall durchgeführt werden…" nichts anfangen, denn die Variable wird doch gesetzt und nicht abgefragt, oder?
Anbei mein Code der beim Empfang ausgeführt wird und auch funktionniert:

Code: Alles auswählen

wenn WD_11_Gast ist gleich "kurz" dann
	Gast:= 1
	Status_06_L_Gast setzen auf "grün"
//	SetCCUSysVar("Gast",1,"127.0.0.1")
	SetCCUSysVar("Gast",1,"192.168.178.20")
wenn-Block-Ende

wenn WD_11_Gast ist gleich "lang" dann
	Gast:= 0
	Status_06_L_Gast setzen auf "aus"
//	SetCCUSysVar("Gast",0,"127.0.0.1")
	SetCCUSysVar("Gast",0,"192.168.178.20")
wenn-Block-Ende

Vielen Dank im Voraus.
Hans1234, über 100 Aktoren, HPCL programmiert - IoBroker dient als graphische Interface und der Einbindung von nicht-HM-Geräten sowie Alexa/Siri/ Wetter usw...

NickHM
Beiträge: 3729
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 65 Mal
Danksagung erhalten: 119 Mal

Re: Verständnisproblem SetCCUSysVar

Beitrag von NickHM » 18.04.2018, 11:30

Guten morgen

ich habe jetzt kein HPCL hier um nachzusehen

- könnte es sein, dass die IP Nummer in einfache ' ' muss? Bitte genau wie in der Hilfe beschrieben machen
- heisst die SysVar genau so wie in der WebUi - Groß / Kleinschreibung??

Alternativ - versuche mal eine SysVar vom Typ Zeichen.
Der Typ sollte in HPCL und in der WebUI gleich sein.

Ich kann gern heute abend mal in meinem Projekt nachsehen, was funktioniert.

Hans1234
Beiträge: 71
Registriert: 12.03.2014, 19:27
Hat sich bedankt: 2 Mal

Re: Verständnisproblem SetCCUSysVar

Beitrag von Hans1234 » 19.04.2018, 13:45

Vielen Dank für Deine Bemühungen.

Bevor ich meine Anfrage stellte, hatte ich einiges getestet, was ich hier zusammenfasse:
- Gross- und Kleinschreibung auf HPCL und CCU überprüft. Auch überprüft, ob eine Leerstelle sich eingeschlichen hat,
- das Befehl aus der HPCL-Beschreibung mit cut & paste eingesetzt
- Das Beispiel "Anwesenheit" angewendet, es ging auch nicht
- Dies Adresse der CCU und die 127ger Adresse probiert. keines ging
- ich habe viele Treads Im Forum gefunden, allerdings bezogen sich die meisten auf Bugs zu einer bestimmte (alte) Version von HPCL. Ich verwende die 4.0-Version 170803. Immerhin gab es den Hinweis, dass dies Ausführung lange dauern könnte und irgendwann einen Hinweis auf Port-Fehler, was ich nicht verstand.
Ich komme nicht darauf, was ich hier übersehe, werde aber dein Zeichenketten-Typ versuchen.

meine ganze Logik steckt in HPCL, ich hatte bislang die Befehle Get-/SetCCUSysVar nicht benötigt (Familienvater findet die zurecht murks). Nun wollte ich IoBroker nützen und ich benötige dort den Zustand von HPCL-Variable. Kennt eventuell jemanden einen bessere Methode die Variable von HPCL in ioBrocker abzufragen?
Hans1234, über 100 Aktoren, HPCL programmiert - IoBroker dient als graphische Interface und der Einbindung von nicht-HM-Geräten sowie Alexa/Siri/ Wetter usw...

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Verständnisproblem SetCCUSysVar

Beitrag von Familienvater » 19.04.2018, 23:56

Hi,

grundsätzlich sollte SetCCUSysvar funktionieren, aber es mit eine der "schlechtesten" Varianten, um mit anderen Subsystem zu kommunizieren.
ioBroker muss die Systemvariablen regelmäßig pollen, die werden nicht "bei Änderung" übertragen, sondern alle 30 Sekunden oder so nach ihrem Status abgefragt, theroretisch müsste man das in HPCL auch machen, wenn man eine "bidirektionale Schnittstelle" möchte.
Um "Events" in HPCL einzuliefern, eignet sich eigentlich die WebCLI-Schnittstelle, wenn es um "gelegentliche" Nutzung geht, wenn man wirklich viel und regelmäßig an HPCL senden will, dann sollte man die HPCL-eigene XMLRPC-ähnliche Schnittstelle nutzen. Wenn ich per Alexa via ioBroker Makros in HPCL triggern möchte, dann mache ich das aktuell via WebCLI-http-Aufruf aus ioBroker, das ist relativ einfach in javascript zu implementieren und funktioniert soweit gut.
Wenn man von HPCL irgendwelche Stati in ioBroker setzen möchte (mir fehlt so ein bisschen das konkrete Beispiel/Anwendungsfall), dann könnte man via SimpleAPI von HPCL aus per WebRequest die Simple-API von ioBroker ansprechen, weil auch das dann eine eventgetriggerte Kommunikation wäre.
Der Unterschied zwischen Eventgetriggert und "Pollen": Du stehst auf weil es klingelt und gehst zur Türe (Eventgetriggert) vs. du läuft alle x Sekunden zur Türe, machst Auf, schaust, ob jemand davor steht ("Pollen"). Dabei erkennt man die offensichtliche Schwachstelle beim Pollen: Gehst Du aus "Faulheit" nur alle 5 min zur Türe, steht dort evtl. 3 min einer, und geht wieder, weil keiner Aufgemacht hat. Oder Du rennst alle Sekunde zur Türe, dann erwischst Du wahrscheinlich alle Besucher an der Türe, aber hast keine Zeit mehr, für andere Dinge. Beim Eventgesteuerten kannst theoretisch die ganze Zeit auf der Couch sitzen, und Fernsehen, und musst eben nur Aufstehen, wenn jemand klingelt.

Der Familienvater

Hans1234
Beiträge: 71
Registriert: 12.03.2014, 19:27
Hat sich bedankt: 2 Mal

Re: Verständnisproblem SetCCUSysVar

Beitrag von Hans1234 » 20.04.2018, 19:00

Zur Ergänzung:
Ich habe den Tip mit der Zeichenkette probiert und im CCU die Variable auf Zeichenkette umgestellt. Dann die Zeichenketten in Anführungszeichen eingegeben. ich erhielt nur ??? in die Sys-Variable.
Ich weiss nicht weiter.

viele Grüsse
Hans1234, über 100 Aktoren, HPCL programmiert - IoBroker dient als graphische Interface und der Einbindung von nicht-HM-Geräten sowie Alexa/Siri/ Wetter usw...

NickHM
Beiträge: 3729
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 65 Mal
Danksagung erhalten: 119 Mal

Re: Verständnisproblem SetCCUSysVar

Beitrag von NickHM » 21.04.2018, 09:40

Guten Morgen

beim Nachsehen ist mir auf gefallen, dass ich im Moment keine direkten Zahlen oder texte der SysVar zuweise, sondern immer den Inhalt von Variablen.

versuch mal statt

Code: Alles auswählen

wenn WD_11_Gast ist gleich "lang" dann
   Gast:= 0
   Status_06_L_Gast setzen auf "aus"
//   SetCCUSysVar("Gast",0,"127.0.0.1")

Code: Alles auswählen

wenn WD_11_Gast ist gleich "lang" dann
   Gast:= 0
   Status_06_L_Gast setzen auf "aus"
SetCCUSysVar("Gast",Gast,"127.0.0.1")
Und ich benutze immer die 127.0.0.1

Hans1234
Beiträge: 71
Registriert: 12.03.2014, 19:27
Hat sich bedankt: 2 Mal

Re: Verständnisproblem SetCCUSysVar

Beitrag von Hans1234 » 22.04.2018, 16:27

Vielen Dank an Beiden,
Mein Antwort zunächst an Familienvater, dessen Nachricht ich übersehen hatte:
ich ging davon aus, dass IoBroker die Variable sofort erkennen und aktiv werden würde. Ich benötige nur die Rückmeldung vom HCPL aber Deine Hinweise bringen mich wahrscheinlich in weitere Fällen weiter.
Zu meiner Anwendung: ich verwede verschiedene HPCL-Variable wie Gast, Abwesenheit, Sonnen-/Regentag, aus denen ich zu bestimmte Tageszeiten Aktionen (rollos, Pumpe etc..) ableite. Ich setze diese Variable über Fernbedienungen (z.B. Wand Display Schalter HM-PB-4Dis-WM). IoBroker greif also auf diese Schalter zu (Press_long /short), was nicht allzu elegant ist. Ich benötige die Rückmeldung von HPCL.
Zur Verständigung: ich habe inzwischen die Variable durch einen 8-Kanal-Empfangsmodul ersetzt, deren Ausgänge nicht angeschlossen sein brauchen. ich kann aber den Ausgangszustand von IObroker und von HPCL gleichzeitig abfragen.Es funktionniert aber ich wollte es nicht so lassen.
Ich werde mich erstmal über WebCLI und XMLRPC-Schnittstellen schlau machen, diese Möglichkeiten sind mir neu.

An NickHm: ich danke Dir auch. Ich hatte es probiert, aber jetzt wo ich weiss, dass es bei Dir so läuft, werde ich es nochmal testen

Viele Grüsse
Hans1234, über 100 Aktoren, HPCL programmiert - IoBroker dient als graphische Interface und der Einbindung von nicht-HM-Geräten sowie Alexa/Siri/ Wetter usw...

Antworten

Zurück zu „homeputer Studio / Standard: allgemeine Fragen“