Vergleich zweier Systemvariablen -> Fehler im Skript?
Moderator: Co-Administratoren
-
- Beiträge: 22
- Registriert: 10.11.2018, 15:14
- System: CCU
- Wohnort: HILDEN
- Hat sich bedankt: 8 Mal
Re: Vergleich zweier Systemvariablen -> Fehler im Skript?
Super, Danke jetzt funktioniert's
--------------------------------------------
270 Kanäle und 1319 Datenpunkte in 37 Geräten:
3x HM-Sec-RHS, 3x HM-CC-RT-DN, 1x HmIP-SLO, 1x HmIP-FSM16, 3x HM-MOD-Re-8, 1x HmIP-STHO, 1x HmIP-STE2-PCB, 1x HM-WDS30-OT2-SM-2, 2x HM-Sec-SCo, 2x HmIP-SRH, 4x HM-RC-19, 1x HM-RC-Dis-H-x-EU, 1x HM-Sen-EP, 1x HM-PB-6-WM55, 1x HmIP-eTRV-2, 4x HMIP-PS, 1x HmIP-MOD-OC8, 1x HmIP-RCV-50, 1x HmIP-BS2, 1x HmIP-BDT, 1x HmIP-PDT, 1x HmIP-WRC6, 1x HM-TC-IT-WM-W-EU
--------------------------------------------
270 Kanäle und 1319 Datenpunkte in 37 Geräten:
3x HM-Sec-RHS, 3x HM-CC-RT-DN, 1x HmIP-SLO, 1x HmIP-FSM16, 3x HM-MOD-Re-8, 1x HmIP-STHO, 1x HmIP-STE2-PCB, 1x HM-WDS30-OT2-SM-2, 2x HM-Sec-SCo, 2x HmIP-SRH, 4x HM-RC-19, 1x HM-RC-Dis-H-x-EU, 1x HM-Sen-EP, 1x HM-PB-6-WM55, 1x HmIP-eTRV-2, 4x HMIP-PS, 1x HmIP-MOD-OC8, 1x HmIP-RCV-50, 1x HmIP-BS2, 1x HmIP-BDT, 1x HmIP-PDT, 1x HmIP-WRC6, 1x HM-TC-IT-WM-W-EU
--------------------------------------------
- Black
- Beiträge: 5483
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: Vergleich zweier Systemvariablen -> Fehler im Skript?
Macht der Gewohnheit, ich schreib auf allen Programmiersprachen gerne mit leerzeichen, wenns den parser oder den compiler nicht stört. einzig bei tcl hab ich mir angewöhnt vorsichtig zu sein.
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
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
-
- Beiträge: 22
- Registriert: 10.11.2018, 15:14
- System: CCU
- Wohnort: HILDEN
- Hat sich bedankt: 8 Mal
Re: Vergleich zweier Systemvariablen -> Fehler im Skript?
Habe mich nochmal damit beschäftig, lese jetzt die Daten direkt aus.
hier das Skript:
Fachmännisch ist es bestimmt nicht, aber es funktioniert.
hier das Skript:
Code: Alles auswählen
var Temp = dom.GetObject("Aussentemperatur");
real Aus1 = dom.GetObject("BidCos-RF.QEQ....:1.TEMPERATURE");
real Aus2 = dom.GetObject("HmIP-RF.000...:1.ACTUAL_TEMPERATURE").State();
Temp.State(Aus1.Value().Min(Aus2.Value()));
--------------------------------------------
270 Kanäle und 1319 Datenpunkte in 37 Geräten:
3x HM-Sec-RHS, 3x HM-CC-RT-DN, 1x HmIP-SLO, 1x HmIP-FSM16, 3x HM-MOD-Re-8, 1x HmIP-STHO, 1x HmIP-STE2-PCB, 1x HM-WDS30-OT2-SM-2, 2x HM-Sec-SCo, 2x HmIP-SRH, 4x HM-RC-19, 1x HM-RC-Dis-H-x-EU, 1x HM-Sen-EP, 1x HM-PB-6-WM55, 1x HmIP-eTRV-2, 4x HMIP-PS, 1x HmIP-MOD-OC8, 1x HmIP-RCV-50, 1x HmIP-BS2, 1x HmIP-BDT, 1x HmIP-PDT, 1x HmIP-WRC6, 1x HM-TC-IT-WM-W-EU
--------------------------------------------
270 Kanäle und 1319 Datenpunkte in 37 Geräten:
3x HM-Sec-RHS, 3x HM-CC-RT-DN, 1x HmIP-SLO, 1x HmIP-FSM16, 3x HM-MOD-Re-8, 1x HmIP-STHO, 1x HmIP-STE2-PCB, 1x HM-WDS30-OT2-SM-2, 2x HM-Sec-SCo, 2x HmIP-SRH, 4x HM-RC-19, 1x HM-RC-Dis-H-x-EU, 1x HM-Sen-EP, 1x HM-PB-6-WM55, 1x HmIP-eTRV-2, 4x HMIP-PS, 1x HmIP-MOD-OC8, 1x HmIP-RCV-50, 1x HmIP-BS2, 1x HmIP-BDT, 1x HmIP-PDT, 1x HmIP-WRC6, 1x HM-TC-IT-WM-W-EU
--------------------------------------------
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Vergleich zweier Systemvariablen -> Fehler im Skript?
Es funktioniert ist aber nur die halbe Wahrheit. und fast immer der Anfang vom Ende.
Ich würde mal vermuten, das das Script so trotzdem einen ScriptRuntimeError im >> Fehlerprotokoll << wirft.
Und das ist das Wenigste, was du dir anschauen solltest, wenn du dich am Scripten versuchst.
Warum benutzt du denn nicht die Vorlage so wie sie dir gepostet wurde? Einfach nur die beiden Datenpunktnamen eingetragen, sollte die Version dann wenigstens fehlerfrei durchlaufen.
Alchy
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.
-
- Beiträge: 22
- Registriert: 10.11.2018, 15:14
- System: CCU
- Wohnort: HILDEN
- Hat sich bedankt: 8 Mal
Re: Vergleich zweier Systemvariablen -> Fehler im Skript?
Da ich die Wert sowieso auslesen muss, um sie dann im dritten Programm zu vergleich fand ich den Weg geschickter.
Alt 3 Variable und 3 Programme zu neu eine Variable und ein Programm
Wenn es eine bessere Lösung ohne Umweg gibt, würde ich mich über Hilfe freuen.
Alt 3 Variable und 3 Programme zu neu eine Variable und ein Programm
Das konnte ich im Fehlerprotokoll finden ich hoffe das hilft sehe aber keine Error.Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: called Program ID = 1711 'Aussentemperatur' with valNew = '18.300000' ; oidTrigger = 6642 [SetState():iseDOMPrg.cpp:478]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_UPDATE is set, trigger dp exists [CheckCondition2Data():iseCondition.cpp:504]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_UPDATE is set, condition = 1 [CheckCondition2Data():iseCondition.cpp:510]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: type = DP_LESS, condition valL = 18.300000 valR1 = 56.000000 [Evaluate():iseCondition.cpp:331]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: sc = 0, CONDITION_TRIGGER_TRUE is set. [Evaluate():iseCondition.cpp:1121]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: sc = 0, condition result = 1 [Evaluate():iseCondition.cpp:1123]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: c = 0, CONDITION_TRIGGER_TRUE is set. [Evaluate():iseRule.cpp:232]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: c = 0, condition result = 1 [Evaluate():iseRule.cpp:235]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: Rule evaluated state is TRUE by Program ID = 1711 'Aussentemperatur'; Destination ID = 1920 [SetState():iseDOMPrg.cpp:501]
Jun 18 22:26:20 ccu2 local0.info ReGaHss: Info: Program ID = 1711 'Aussentemperatur', rule's trigger flags = 6 [SetState():iseDOMPrg.cpp:515]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: execute Program ID = 1711 'Aussentemperatur'; Destination ID = 1920 [Execute():iseDOMPrg.cpp:611]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: start execute Destination within the trigger delay 0 [Execute():iseDOMPrg.cpp:615]
Jun 18 22:26:20 ccu2 local0.info ReGaHss: Info: added script element id= 1920; time= 0 [Add():iseRTScheduler.cpp:341]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: ExecuteDestination succeeded from Program ID = 1711 'Aussentemperatur' with valNew = '18.300000' [Execute():iseDOMPrg.cpp:625]
Jun 18 22:26:20 ccu2 local0.debug ReGaHss: Verbose: wait max timeout = 240000 [ThreadFunction():iseRTEvent.cpp:69]
Wenn es eine bessere Lösung ohne Umweg gibt, würde ich mich über Hilfe freuen.
--------------------------------------------
270 Kanäle und 1319 Datenpunkte in 37 Geräten:
3x HM-Sec-RHS, 3x HM-CC-RT-DN, 1x HmIP-SLO, 1x HmIP-FSM16, 3x HM-MOD-Re-8, 1x HmIP-STHO, 1x HmIP-STE2-PCB, 1x HM-WDS30-OT2-SM-2, 2x HM-Sec-SCo, 2x HmIP-SRH, 4x HM-RC-19, 1x HM-RC-Dis-H-x-EU, 1x HM-Sen-EP, 1x HM-PB-6-WM55, 1x HmIP-eTRV-2, 4x HMIP-PS, 1x HmIP-MOD-OC8, 1x HmIP-RCV-50, 1x HmIP-BS2, 1x HmIP-BDT, 1x HmIP-PDT, 1x HmIP-WRC6, 1x HM-TC-IT-WM-W-EU
--------------------------------------------
270 Kanäle und 1319 Datenpunkte in 37 Geräten:
3x HM-Sec-RHS, 3x HM-CC-RT-DN, 1x HmIP-SLO, 1x HmIP-FSM16, 3x HM-MOD-Re-8, 1x HmIP-STHO, 1x HmIP-STE2-PCB, 1x HM-WDS30-OT2-SM-2, 2x HM-Sec-SCo, 2x HmIP-SRH, 4x HM-RC-19, 1x HM-RC-Dis-H-x-EU, 1x HM-Sen-EP, 1x HM-PB-6-WM55, 1x HmIP-eTRV-2, 4x HMIP-PS, 1x HmIP-MOD-OC8, 1x HmIP-RCV-50, 1x HmIP-BS2, 1x HmIP-BDT, 1x HmIP-PDT, 1x HmIP-WRC6, 1x HM-TC-IT-WM-W-EU
--------------------------------------------
-
- Beiträge: 73
- Registriert: 21.01.2021, 10:14
- System: CCU
- Hat sich bedankt: 6 Mal
Re: Vergleich zweier Systemvariablen -> Fehler im Skript?
Ist zwar ein alter Post.
Jedoch behandelt der genau mein Problem. Ich hab jedoch recht wenig Erfahrung mit Skripten.
Mein Code sieht so aus:
Variable: Abs.Feuchte_Aussen ist vom Typ Zahl und der Wert kommt aus einem anderen Programm
Variable: Abs.Feuchte_Keller ist vom Typ Zahl und der Wert kommt aus einem anderen Programm
Variable: wird nur in dem Skript geschrieben und soll 0 oder 1 haben. kann aber auch Wahr oder nicht wahr sein. DAs wäre egal.
Will mit der Variable in einem weiteren Programm dann arbeiten.
Kann mir bitte jemand helfen? Leider schaffe ich es nicht mal mir anzeigen zu lassen was raus geschrieben wird.
Jedoch behandelt der genau mein Problem. Ich hab jedoch recht wenig Erfahrung mit Skripten.
Mein Code sieht so aus:
Variable: Abs.Feuchte_Aussen ist vom Typ Zahl und der Wert kommt aus einem anderen Programm
Variable: Abs.Feuchte_Keller ist vom Typ Zahl und der Wert kommt aus einem anderen Programm
Variable: wird nur in dem Skript geschrieben und soll 0 oder 1 haben. kann aber auch Wahr oder nicht wahr sein. DAs wäre egal.
Will mit der Variable in einem weiteren Programm dann arbeiten.
Code: Alles auswählen
! Werte einlesen
object lueften= dom.GetObject("Lüften");
object Aussen = dom.GetObject("Abs.Feuchte_Aussen");
object Innen= dom.GetObject("Abs.Feuchte_Keller");
! Vergleichen
if (Aussen.Value() >= Innen.Value())
{
lueften.State(1);
}
else
{
lueften.State(0);
}
WriteLine(lueften);
WriteLine(Aussen);
WriteLine(Innen)
----------------------------------------------------------------------------
Vielen Dank
Viele Grüße
Steve
----------------------------------------------------------------------------
Vielen Dank
Viele Grüße
Steve
----------------------------------------------------------------------------
-
- Beiträge: 9684
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1627 Mal
Re: Vergleich zweier Systemvariablen -> Fehler im Skript?
Ganz am Ende fehlt dir ein ;
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
- Baxxy
- Beiträge: 10847
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 610 Mal
- Danksagung erhalten: 2229 Mal
Re: Vergleich zweier Systemvariablen -> Fehler im Skript?
teste mal...
Code: Alles auswählen
! Werte einlesen
object lueften= dom.GetObject("Lüften");
object Aussen = dom.GetObject("Abs.Feuchte_Aussen");
object Innen = dom.GetObject("Abs.Feuchte_Keller");
WriteLine(Aussen.Value());
WriteLine(Innen.Value());
! Vergleichen
if (Aussen.Value() >= Innen.Value())
{
lueften.State(1); WriteLine("lueften Wert: 1");
}
else
{
lueften.State(0); WriteLine("lueften Wert: 0");
}
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 73
- Registriert: 21.01.2021, 10:14
- System: CCU
- Hat sich bedankt: 6 Mal
Re: Vergleich zweier Systemvariablen -> Fehler im Skript?
hm also jetzt wird etwas in die Lüften Variable geschrieben.
Aber irgendwie ist das nicht plausible.
Abs.Feuchte_Aussen=11.95
Abs.Feuchte_Keller=9.70
Somit müsste der Wert gleich 1 sein.
Es kommt aber irgendwie 0 raus. :-/
Aber irgendwie ist das nicht plausible.
Abs.Feuchte_Aussen=11.95
Abs.Feuchte_Keller=9.70
Somit müsste der Wert gleich 1 sein.
Es kommt aber irgendwie 0 raus. :-/
----------------------------------------------------------------------------
Vielen Dank
Viele Grüße
Steve
----------------------------------------------------------------------------
Vielen Dank
Viele Grüße
Steve
----------------------------------------------------------------------------
-
- Beiträge: 9684
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1627 Mal
Re: Vergleich zweier Systemvariablen -> Fehler im Skript?
Werden da vielleicht Strings miteinander verglichen?
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++