Servicemeldungen *allinclusive* Script

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

LibertyX
Beiträge: 767
Registriert: 10.11.2012, 19:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: RP
Hat sich bedankt: 1 Mal
Danksagung erhalten: 19 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von LibertyX » 31.10.2018, 13:03

Also ich hab die 1.99 und konnte bis jetzt keine Fehler feststellen.
RaspberryMatic (3.71.12.20231020) @RPI3 | 218 Kanäle in 53 Geräten und 72 CUxD-Kanäle in 8 CUxD-Geräten (2.11) | iobroker.pro - CCU-Historian (3.4.0)

Benutzeravatar
Bernd-Joras
Beiträge: 732
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von Bernd-Joras » 31.10.2018, 15:04

LibertyX hat geschrieben:
31.10.2018, 13:03
Also ich hab die 1.99 und konnte bis jetzt keine Fehler feststellen.
Dito, Bernd
2 Standorte mit je RPi3B+ RaspberryMatic 3.75.7.20240420 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

tloeffel
Beiträge: 448
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von tloeffel » 01.11.2018, 02:38

Hallo alchi,

danke für die super Arbeit. Ich habe noch die Version 1.98 im Einsatz. Ich wollte nun Pushover in Betrieb nehmen und es klappt nicht. Falls ich auf den hunterten Seiten etwas überlesen haben sollte sorry. Was mache ich denn falsch? Log wird geschrieben und Systemvariable wird gefüllt und richtig angezeigt. (wobei er hat bei mir noch nie: "Neue Servicemeldung" gesagt). Ggf ist ja dieser Block bei mir fehlerhaft (siehe drittes Skript).

Erster Test:
Siehe unten Skript 2.
Ergebnis: geht

Zweiter Test:
Habe mal die Variable "GO" von Hand auf "true" gesetzt. Nun sendet er die Pushnachricht auch. Scheint immer auf "false" zu sein.
Ergebnis: geht

Gruß Thomas



Skript1: Dein Teil in Skript 1.98

Code: Alles auswählen

! Verarbeiten der Daten zum Versand
if (GO)  {
if ( (USE_MAIL == "ja")&&( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#MAIL_CUXD_ID#".CMD_EXEC")) ) { (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#MAIL_CUXD_ID#".CMD_EXEC").State("/etc/config/addons/email/email "#MAIL_ID#" '"#slist#"'"); }
if ( (USE_PUSHOVER == "ja") &&( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PUSH_CUXD_ID#".CMD_EXEC")) ){ (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PUSH_CUXD_ID#".CMD_EXEC").State("/usr/local/addons/cuxd/extra/curl -s -k -d token='"#TOKEN#"' -d user='"#USERKENNUNG#"' -d device='"#USERDEVICE#"' -d html='"#HTML#"' -d message='"#message#"' -d priority='"#PRIO_MAX#"' -d sound='"#SOUND#"' -d retry='"#RETRY#"' -d expire='"#EXPIRE#"' https://api.pushover.net/1/messages.json"); }
if ( (USE_PUSHBULLET == "ja") &&( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PUSHBULLET_CUXD_ID#".CMD_EXEC")) ){ (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PUSHBULLET_CUXD_ID#".CMD_EXEC").State("/usr/local/addons/cuxd/extra/curl -u '"#USER#"' -k -d device_iden='"#DEVICE_IDEN#"' -d type=note -d title='"#TITEL#"' -d body='"#slist#"' https://api.pushbullet.com/api/pushes"); }
if ( (USE_TELEGRAM == "ja") &&( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#TELEGRAM_CUXD_ID#".CMD_EXEC")) ){ (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#TELEGRAM_CUXD_ID#".CMD_EXEC").State("/usr/local/addons/cuxd/extra/curl -s -k https://api.telegram.org/bot"#BOTAPI#"/sendMessage -d text='"#message#"' -d chat_id="#CHATID); }
if ( (USE_PROWL == "ja") && ( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PROWL_CUXD_ID#".CMD_EXEC")) ){ string url="http://prowl.weks.net/publicapi/add?apikey="#API_KEY#"&application="#ANWENDUNG#"&event="#KATEGORIE#"&priority="#PRIO_MAX#"&description="#slist#"&timeout="#TIME_OUT#""; (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PROWL_CUXD_ID#".CMD_EXEC").State("wget -q -O - '"#url#"'"); }
if ( (USE_PUSHSAVER == "ja") && ( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PUSHSAVER_CUXD_ID#".CMD_EXEC")) ){ (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PUSHSAVER_CUXD_ID#".CMD_EXEC").State("/usr/local/addons/cuxd/extra/curl -s -k -d k='"#PRIVATEKEY#"' -d t='"#TITEL#"' -d m='"#message#"' -d s='"#MELODIE#"' -d i='"#ICON#"' -d v='"#VIBRATION#"' -d d='"#DEVICE#"' https://www.pushsafer.com/api");}
if ( (USE_SYSVAR == "ja") && (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(SYSVAR_NAME) ){ (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(SYSVAR_NAME).State(slist); }
} else { if ( (USE_SYSVAR == "ja") && (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(SYSVAR_NAME) ){ (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(SYSVAR_NAME).State(slist); }}
if ( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801001:1.CMD_EXEC")) { (dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801001:1.CMD_EXEC").State("logger -t script -p user.debug [ALCHY ALLINScript ENDE]"); } else {string stdout;string stderr; system.Exec("logger -t script -p user.debug [ALCHY ALLINScript se ENDE]", &stdout, &stderr);}
} 
Skript 2: Habe dies einfach mal an das Ende hinter "}" gesetzt und es geht

Code: Alles auswählen

dom.GetObject("CUxD."#PUSH_CUXD_ID#".CMD_EXEC").State("/usr/local/addons/cuxd/extra/curl -s -k -d token='"#TOKEN#"' -d user='"#USERKENNUNG#"' -d device='"#USERDEVICE#"' -d html='"#HTML#"' -d message='"#message#"' -d priority='"#PRIO_MAX#"' -d sound='"#SOUND#"' -d retry='"#RETRY#"' -d expire='"#EXPIRE#"' https://api.pushover.net/1/messages.json");  
Skript 3:Block nach Parameter

Code: Alles auswählen

if  ( dom.GetObject(41).Value() > dom.GetObject(41).LastValue() )   { boolean GO = true; string slist = "NEUE Servicemeldung" ;if (CR == "ja"){ slist = slist #"\r\n";}} else { string slist = "ALTE Servicemeldung";if (CR == "ja"){ slist = slist #"\r\n\r\n";} boolean GO = false; }
 [Code]
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

tloeffel
Beiträge: 448
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von tloeffel » 01.11.2018, 02:52

Hallo alchi,

ich habe auch getestet ob die Variable "41" da ist. Allerdings ist mir schleierhaft wie du den Wert "LastValue" nutzt. Bei mir verändert er sich mit dem geleichen Wert wie Value.

Beispiel:
- Keine Fehler dann Value:0 LastValue:0
- Gerät 1: löst Sabo Kontakt aus dann Value:1 LastValue:1
- Gerät 1 und Gerät 2: löst Sabo Kontakt aus dann Value:2 LastValue:2

Code: Alles auswählen

if ( (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(41) ) {
WriteLine("vorhanden"); 
WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).Get(41).Name()); 
WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).Get(41).Value()); 

! Habe ich dazu gefügt
WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).Get(41).LastValue()); 

}else{WriteLine("Variable nicht da");} 

Gruß Thomas
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

Modo
Beiträge: 10
Registriert: 01.11.2018, 09:30
Hat sich bedankt: 3 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von Modo » 01.11.2018, 09:38

AndiN hat geschrieben:
31.10.2018, 11:52
nicolas-eric hat geschrieben:
30.10.2018, 23:00
Schade. Aber ich hoffe es geht irgendwann weiter.

Ich nutze das seit 0.x und seit erscheinen die 1.98 und ich hatte noch nie Probleme.
Schließe ich mich an. Habe mit der Version auch keine Probleme gehabt. Vielleicht ein Bug in der 1.99? Die 1.98 läuft wie eine 1..... Vielleicht kann Alchy die ja übergangsweise wieder rein stellen und die 1.99 streichen ;-)
Hallo, ich bin ganz neu dabei. Homematic und Forum und überhaupt alles. Ich lese schon seit Tagen viel im Forum. Heute wollte ich das Script testen. Leider wurde es entfernt. Ich würde gerne das Script 1.98 mal ausprobieren. Kann mir es bitte jemand zukommen lassen. Danke

Benutzeravatar
jmaus
Beiträge: 9862
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1880 Mal
Kontaktdaten:

Re: Servicemeldungen *allinclusive* Script

Beitrag von jmaus » 01.11.2018, 10:07

tloeffel hat geschrieben:
01.11.2018, 02:52
ich habe auch getestet ob die Variable "41" da ist. Allerdings ist mir schleierhaft wie du den Wert "LastValue" nutzt. Bei mir verändert er sich mit dem geleichen Wert wie Value.
Übrigens, ein kleiner Hinweis am Rande: Statt ein GetObject() auf einem Objekt mit der festen ISE ID "41" auszuführen, sollte ein saubererer Weg sein stattdessen den Identifier "ID_GW_SYSSERVICE" zu verwenden. Dieser existiert zwar genauso wie ID_GW_SYSALARM erst ab der ReGaHss version R1.00.0388.0119 auf einer CCU3 oder aktuellen CCU2 Firmwares existiert dieser daher bereits.
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

darkbrain85
Beiträge: 1343
Registriert: 27.06.2015, 22:17
Hat sich bedankt: 43 Mal
Danksagung erhalten: 32 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von darkbrain85 » 01.11.2018, 11:51

Ach, jetzt muss hier erst wieder ein paar Tage gelobt und Schulter geklopft werden, bevor das Skript wieder zur Verfügung steht.
Das ist sowas von unnötig und schädlich für dieses Forum...

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von blackhole » 01.11.2018, 12:52

Damit das nicht untergeht:
alchy hat geschrieben:
08.04.2015, 10:12
Script wurde entfernt, weil es fehlerhaft ist, bzw Fehler gemeldet wurden, welche ich nicht nachvollziehen kann.

Dazu muss ich mir Hardware organisieren und wenn ich dann mal Zeit und Lust habe, schau ich es mir auch an.
Das hat man zu akzeptieren. Darüber muss nicht hergezogen werden. Einfach abwarten und den Ball flach halten.

tloeffel
Beiträge: 448
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von tloeffel » 01.11.2018, 22:40

blackhole hat geschrieben:
01.11.2018, 12:52
Damit das nicht untergeht:
alchy hat geschrieben:
08.04.2015, 10:12
Script wurde entfernt, weil es fehlerhaft ist, bzw Fehler gemeldet wurden, welche ich nicht nachvollziehen kann.

Dazu muss ich mir Hardware organisieren und wenn ich dann mal Zeit und Lust habe, schau ich es mir auch an.
Das hat man zu akzeptieren. Darüber muss nicht hergezogen werden. Einfach abwarten und den Ball flach halten.
Hallo Zusammen,

ich möchte "blackhole" da völlig zustimmen. Alchi macht einen super Support und wenn er "sein" Skript aufgrund von Bugs "offline" stellt, dann ist das völlig in Ordnung. Ansonsten kann ja jeder das Skript weiterentwickeln, oder halt warten.

Lieben Gruß Thomas
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

tloeffel
Beiträge: 448
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von tloeffel » 01.11.2018, 23:20

jmaus hat geschrieben:
01.11.2018, 10:07
tloeffel hat geschrieben:
01.11.2018, 02:52
ich habe auch getestet ob die Variable "41" da ist. Allerdings ist mir schleierhaft wie du den Wert "LastValue" nutzt. Bei mir verändert er sich mit dem geleichen Wert wie Value.
Übrigens, ein kleiner Hinweis am Rande: Statt ein GetObject() auf einem Objekt mit der festen ISE ID "41" auszuführen, sollte ein saubererer Weg sein stattdessen den Identifier "ID_GW_SYSSERVICE" zu verwenden. Dieser existiert zwar genauso wie ID_GW_SYSALARM erst ab der ReGaHss version R1.00.0388.0119 auf einer CCU3 oder aktuellen CCU2 Firmwares existiert dieser daher bereits.
Hallo Jens,

danke für den Tipp. Ich denke "alchi" wird es lesen und ich habe das in seinem Skript (Version 1.98) auf meinem System geändert. Alchi wertet "LastValue" aus, ich kann aber keinen Unterschied zwischen dem Ergebnis "Value" und "LastValue" erkennen. Mache ich etwas falsch?

Beispiel:
- Keine Fehler dann Value:0 LastValue:0
- Gerät 1: löst Sabo Kontakt aus dann Value:1 LastValue:1
- Gerät 1 und Gerät 2: löst Sabo Kontakt aus dann Value:2 LastValue:2

Gruß Thomas
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“