HM-Sec-Sir-WM Ton per Script

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
mazta
Beiträge: 49
Registriert: 27.07.2018, 12:40
Hat sich bedankt: 8 Mal
Danksagung erhalten: 2 Mal

HM-Sec-Sir-WM Ton per Script

Beitrag von mazta » 14.08.2018, 13:30

Hallo zusammen,

vor dem Update auf 2.3.16 funktionierte folgende Zeile noch perfekt. Beim Verlassen des Hauses folgendes Script ausgelöst:

Code: Alles auswählen

string message; 
string now; 
string present;
string status;
string msg1;
string msg2;
string msg3;
string var_fensterkontakte;

var_fensterkontakte = dom.GetObject("var_Fensterkontakte").Value();

!Überprüfen ob alle Fenster zu sind, dann erst Alarmanlage scharf stellen
if( (var_fensterkontakte == 0) ) {
	dom.GetObject("HM-Sec-Sir-WM OEQ049XXX3:4").State(2); !Sirene alle Sensoren scharf, extern scharf
	dom.GetObject("Alarmanlage_Status").State(1); !Alarmanlage scharf stellen
	dom.GetObject("Anwesenheit").State(0); !Abwesenheit setzen
	msg3 = "Es ist sind alle Fenster geschlossen";
}
else{
	msg3 = "Es ist mindestens ein Fenster/Tuer geoeffnet";
}


! Meldung Abwesenheit

status = dom.GetObject("Alarmanlage_Status").Value();
if(status == 1){
  msg1 = "Die Alarmanlage wurde SCHARF gestellt.";
}
else{
  msg1 = "!!!FEHLER!!! Die Alarmanlage wurde NICHT aktiviert !!!FEHLER!!!";
}

present = dom.GetObject("Anwesenheit").Value();
if(present == 1){
	msg2 = "Das Haus wurde betreten.";
}
else{
	msg2 = "Das Haus wurde verlassen.";
}


! +++++ Erzeugen der Nachricht +++++
message = msg1#"\n"#msg2#"\n"#msg3;

! Ab hier kommt nur das Versenden durch Telegram, klappt einwandfrei
Letztendlich funktioniert alles, nur die Sirene wird als Bestätigung nicht mehr angesteuert. Das hat vor dem Update geklappt. Bei Script Testen gibt es auch kein Resultat mit dieser Zeile:

Code: Alles auswählen

dom.GetObject("HM-Sec-Sir-WM OEQ049XXX3:4").State(2); !Sirene alle Sensoren scharf, extern scharf
Dateianhänge
sirene.PNG

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: HM-Sec-Sir-WM Ton per Script

Beitrag von alchy » 14.08.2018, 21:06

mazta hat geschrieben:
14.08.2018, 13:30
vor dem Update auf 2.3.16 funktionierte folgende Zeile noch perfekt. Beim Verlassen des Hauses folgendes Script ausgelöst:

Ohne das Teil zu besitzen, aber der Zugriff auf den Datenpunkt sollte auch in der Vorversion nicht damit

Code: Alles auswählen

dom.GetObject("HM-Sec-Sir-WM OEQ049XXX3:4").State(2); 
funktioniert haben. Da behauptest du *IMHO* etwas Falsches.
Kann funktioniert haben, wenn der kanal damals so hiess und nicht wie jetzt per Bildschirmcopy gezeigt.

Entweder gehst du über den Kanalnamen und verwendest dann weitergehende Methoden wie .DPByHssDP()
oder
du benutzt den Namen des Datenpunktes direkt
oder
...

Das was du verwendest HM-Sec-Sir-WM OEQ049XXX3:4 ist schon mal nichts von beiden.
Das Objekt ist also nicht vorhanden und es wird ein ReGaHss: Error: IseESP::ScriptRuntimeError: erzeugt.
Siehe auch >> HM Script Abfrage von Datenpunkten (RF,IP...) <<

Alchy
Zuletzt geändert von alchy am 14.08.2018, 23:44, insgesamt 1-mal geändert.
Grund: strike

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.

mazta
Beiträge: 49
Registriert: 27.07.2018, 12:40
Hat sich bedankt: 8 Mal
Danksagung erhalten: 2 Mal

Re: HM-Sec-Sir-WM Ton per Script

Beitrag von mazta » 15.08.2018, 11:57

Es hat wirklich funktioniert :P

Dank dir für die Hilfestellung, ich habe mir dein Topic und die EQ3 Doku zu den Punkten mal zu Gemüte geführt.

Falls jemand mal das selbe Problem hat, so funktioniert es dann:

Code: Alles auswählen

var sirene_unscharf = (datapoints.Get("BidCos-RF.OEQ049XXX3:4.ARMSTATE")).State(0); !Sirene unscharf
bzw.

Code: Alles auswählen

var sirene_scharf = (datapoints.Get("BidCos-RF.OEQ049XXX3:4.ARMSTATE")).State(2); !Sirene scharf
Zuletzt geändert von alchy am 15.08.2018, 12:35, insgesamt 1-mal geändert.
Grund: sinnloses Fullquote entfernt

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: HM-Sec-Sir-WM Ton per Script

Beitrag von alchy » 15.08.2018, 12:50

Freut mich zu hören.

Wenn früher es funktioniert haben SOLLTE, dann aber eben nur, wenn FRÜHER die Kanäle so benannt waren, wie im Script angegeben und nicht wie jetzt in deiner Bildschirmcopy.

Außerdem wärst du dann aber bei Schalten des Kanales direkt *IMHO* extremst abhängig von eventuellen Arbeiten an der Rega usw. da nur in diesem Fall die entsprechenden Kanal Default Methoden auf den Datenpunkt ARMSTATE zeigen.
Daher ist eben auch Schalten oder Statusabfragen direkt auf einen Kanal zu vermeiden, so wurde mir das auch mal innerhalb einer Diskussion mit BadenPower vor langer Zeit beigebracht. Und man will ja lernfähig bleiben, auch wenn es immer schwieriger wird.

Also bleib lieber IMMER bei Schalten / Abfragen des Datenpunktes wie von mir beschrieben und nie auf den Kanal (auch wenn es derzeit vielleicht funktioniert)
Ist zwar nur meine Meinung, aber es ist eben meiner Meinung nach besser so. :mrgreen:

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.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“