Servicemeldungen *allinclusive* Script

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

Moderator: Co-Administratoren

gnujuba
Beiträge: 15
Registriert: 25.09.2018, 22:36

Re: Servicemeldungen *allinclusive* Script

Beitrag von gnujuba » 28.09.2018, 13:41

Sorry fürs Spammen ...

Also nach dem Anlegen eines Gerätes mit ID28 kommt zum Beispiel die Servicemeldung "Sabotage" eines Fensterkontakts rein. Sieht also erstmal gut aus.

Sollte auch ein Email rausgehen, wenn die Sabotage zu ende ist also der Deckel wieder drauf gemacht wird?

Danke und Gruß

Juergen

HMatton
Beiträge: 1
Registriert: 18.03.2018, 15:02

Re: Servicemeldungen *allinclusive* Script

Beitrag von HMatton » 28.09.2018, 17:53

gnujuba hat geschrieben:
28.09.2018, 13:41

Sollte auch ein Email rausgehen, wenn die Sabotage zu ende ist also der Deckel wieder drauf gemacht wird?
Nein, sollte m.E. nicht!
Viele Grüße "aus dem Tal"

Holger

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

Re: Servicemeldungen *allinclusive* Script

Beitrag von alchy » 28.09.2018, 20:21

gnujuba hat geschrieben:
28.09.2018, 11:10
Hier der Output:

Code: Alles auswählen

vorhanden
Gateway-SysSrvDP
Nun die Frage dazu, hast du die Systemvariable umbenannt?
Und die die Systemvariable "Alarmmeldungen" gleich noch mit in Gateway-SysAlDP?
Das gepostete Bild der Systemvariablen stammt von wo?
Und was gibt das folgende Script aus, wenn du ein anstehende oder auch mal 2 anstehende Servicemeldungen anstehen hast.

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()); 
}else{WriteLine("Variable nicht da");}
Normalerweise sollte die Anzahl der anstehenden Servicmeldungen ausgegeben werden.
Wenn du im Script jedes Vorkommen der 41 durch 40 ersetzt, wird dasselbe ausgegeben nur eben für Alarmmeldungen.

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.

deine_schuld
Beiträge: 15
Registriert: 11.02.2018, 16:13

Re: Servicemeldungen *allinclusive* Script

Beitrag von deine_schuld » 29.09.2018, 12:00

Hallo zusammen!

Ich bekomme es nach mehreren Abenden/Nächten immer noch nicht auf die Reihe - Hat jemand eine Idee woran es hängt?

Ich habe alles nach Anleitung ausgeführt, jedoch kommen keinerlei Pushnachrichten via Pushover.
- Die Test-Nachrichten von der Pushover-Website kommen an
- Nachrichten über dieses Script kommen an:

Code: Alles auswählen

string nachricht = "Test123";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -d token=xxxx -d user=xyz -d message='"#nachricht#"' -d sound=bike http://api.pushover.net/1/messages.json");
- im CUxD zeigt es beim ausführen des *allinclusive* Script im Log jedes mal

Code: Alles auswählen

Sep 29 11:49:40 homematic-ccu2 user.debug script: [ALCHY ALLINScript START]
Sep 29 11:49:40 homematic-ccu2 user.debug script: [ALCHY ALLINScript ENDE]
an

Ich nutze Pivccu - Verhält es sich da was CuxD/Curl angeht irgendwie anders?

Schönen Samstag!
Grüße
Andy

Update:
Hat sich dank..
alchy hat geschrieben:
10.04.2018, 18:46

Du kannst in der Zeile

if ( dom.GetObject(41).Value() > dom.GetObject(41).LastValue() )

ändern auf >=

das ist aber keine allgemein gültige Lösung und wird daher von mir hier nicht integriert.
Ich hatte immer noch die Hoffnung, das das komische Verhalten mancher Geräte von EQ3 gefixt wird, dies scheint jedoch nicht zu passieren.

Alchy
..erledigt!

Grüße
Andy
Raspberry mit PiVccu
Thermostate HmIP-eTRV-2
Sensoren HmIP-STHD + HmIP-STHO
HMIP-SWDO,HmIP-SRH,HmIP-SMI, HmIP-ASIR
HM-OU-LED16

Benutzeravatar
onkeltommy
Beiträge: 1386
Registriert: 07.05.2016, 08:03
Wohnort: Wien
Hat sich bedankt: 28 Mal
Danksagung erhalten: 26 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von onkeltommy » 07.10.2018, 12:13

Hi
diese temporäre Lösung hat bei mir auch geholfen....

@ CCU3-> Script funktioniert auch nach Übernahme von der 2er ohne "Modikfikation"



Die "alte" CCU2 übernahm nun Sohnemann -> Werkrsreset, FW neu drauf, Mode: Jungfrau, alles neu installiert usw.

Das AllInOne Script funktioniert auf der "neuen" 2er genau 1x nach Neustart, dann nicht mehr. Also von > auf >= geändert und es geht.

Es ging Prowl und PushSafer nicht mehr, gleiches Verhalten wie oben.

Bin neugierig, warum das Pushen auf der 3er (noch) geht und auf der 2er nur nach Modi


EIne "kleeeeeine" Bitte an Alchy :o bei PushSafer kann man mittlerweile mehr Parameter übergeben, vielleicht hast Du mal Zeit und Laune 8) 8)

Code: Alles auswählen

string title = "TUERGLOCKE";
string message = "DING-DONG";
string sound = "17";
string icon = "144";
string vibration = "0";
string device = "*********";
string priority = "1";
string Time2Live = "1";
string privatekey = "*************************";
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k -d k='"#privatekey#"' -d t='"#title#"' -d m='"#message#"' -d s='"#sound#"' -d i='"#icon#"' -d v='"#vibration#"' -d pr='"#priority#"' -d l='"#Time2Live#"' -d d='"#device#"' https://www.pushsafer.com/api");
es geht um die beiden Variablen:
string priority = "1";
string Time2Live = "1";

-> das oben funktioniert perfekt !!!

Info vom Hersteller:

l = Time to Live Ganzzahl 0-43200: Zeit in Minuten,

nach der die Nachricht automatisch gelöscht wird.
0 oder leer = nicht automatisch löschen

pr = Priorität

-2 = niedrigste Priorität

-1 = niedrige Priorität

0 = normale Priorität

1 = hohe Priorität

2 = höchste Priorität


wäre supi wennst mal Zeit hast ;-)

vielen Dank und LG

Thomas
lG
Thomas
--------------------------
RaspberryMatic 3.73.9.20240130 @ TinkerS (Produktivsystem) & Historian @ SynologyVM & 2x RB3+ @ Nachwuchs

GandRalf
Beiträge: 6
Registriert: 11.02.2017, 21:30

Re: Servicemeldungen *allinclusive* Script

Beitrag von GandRalf » 08.10.2018, 00:14

Vielen Dank an Alchy für das Skript.

Ich hätte da noch eine Ergänzug um pocketControl Push-Mitteilungen zu nutzen.
Dazu habe ich folgende Zeilen für den Konfigurationsteil des Skriptes:

Code: Alles auswählen

!+++++++ pocketControl PushMessage Setup ++++++
! Systemvariable vom Typ Zeichenkette muss über pocketControl in der CCU angelegt sein
var USE_PC_PUSHMESSAGE = "ja"; ! ja oder nein fuer die Verwendung pocketControl PushMessage direkt im Script
var PC_VAR_NAME = "pocketControlPushMessage"; ! hier den Namen der PushMessage Variablen eintragen
var GERAETE = "1"; ! Geraetenummer bzw. Liste der Geraetenummern an welche die Nachricht gesendet werden soll
var TON = "0"; ! Ton-Nummer, moegliche Werte von 0-4, 0 fuer Ton aus
... und folgende Zeile für den Teil "Verarbeiten der Daten zum Versand":

Code: Alles auswählen

if ( (USE_PC_PUSHMESSAGE == "ja") && (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(PC_VAR_NAME) ){ (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(PC_VAR_NAME).State(slist#" to("#GERAETE#") sound("#TON#")"); }
Das habe ich dann vor die Zeile mit "if ( (USE_SYSVAR == "ja") ..." eingesetzt.

Klar, dass man in pocketControl das Senden von Push Mitteilungen aktiviert haben sollte. ;-)

Grüße, Ralf

outsider2017
Beiträge: 14
Registriert: 14.07.2018, 21:10
Hat sich bedankt: 3 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von outsider2017 » 11.10.2018, 15:35

Ein wirklich tolles Skript. Angelegt habe ich es, inkl. der Systemvariablen.
Als Push wollte ich Prowl nutzen.
Habe alles eingerichtet. Von der Prowl Homepage kommen die Push Nachrichten an.

Code: Alles auswählen

var API_KEY ="xxxxxxxxxxxxxxxxxxxxxxxx"; ! selbsterklärend
var PROWL_CUXD_ID = "CUX2801001:1"; !welches CUXD.EXEC Gerät mit Kanal soll verwendet werden ?
var ANWENDUNG = "Homematic"; !kann jeder nennen wie er will
var KATEGORIE ="Servicemeldung"; !kann jeder nennen wie er will
var prio = 1;
string slist = "Test mit Sonderzeichen ä ö ü ß Ä Ö Ü"; 
string url="http://prowl.weks.net/publicapi/add?apikey="#API_KEY#"&application="#ANWENDUNG#"&event="#KATEGORIE#"&priority="#prio#"\&description="#slist#"&timeout=10";
dom.GetObject("CUxD."#PROWL_CUXD_ID#".CMD_EXEC").State("wget -q -O - '"#url#"'");
Auch wenn ich dieses Skript teste, kommt die Meldung auf mein iPhone.

Aber leider kommt KEINE Push Nachricht, wenn eine Servicemeldung anliegt.
Um zu testen hab ich die Low Bat Schwelle einfach auf 5V gestellt. Servicemeldung wird auch angezeigt, in die angelegte Variable wird auch die Servicemeldung geschrieben.

Code: Alles auswählen

Bewegungsmelder Schlafzimmer : 
2x leere LR6/AA 
seit: 11.10.18 15:55 (11.10.18 15:55)
Im Script hab ich natürlich die Api Key hinterlegt. Im Systemlog ist KEIN Fehler hinterlegt.

Was könnte das "Problem" sein?

PS: Hab ne Raspmatic, Firmware auf dem aktuellsten stand

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von Tibin » 12.10.2018, 13:42

Lies mal 3 Beiträge über deinem und teste mal mit Alchy's Tip. ( >= )
Gruß Tino
Zuletzt geändert von alchy am 12.10.2018, 19:59, insgesamt 1-mal geändert.
Grund: Link angepasst

mafa
Beiträge: 64
Registriert: 23.04.2018, 19:27

Re: Servicemeldungen *allinclusive* Script

Beitrag von mafa » 12.10.2018, 18:04

Bei mir fehlt die Variable Systemmeldungen leider auch. Manuelle Anlage wird wohl nix bringen...konnte bei den anderen Forenteilnehmer keine Lösung entnehmen...gibt es also keine und ich kann das Skipt nicht verwenden?
Hab Raspberrymatic 3.37.8.20180929

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

Re: Servicemeldungen *allinclusive* Script

Beitrag von alchy » 12.10.2018, 20:08

Wenn die Systemvariable überhaupt nicht vorhanden ist,

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()); 
}else{WriteLine("Variable nicht da");}
brauchst du sie auch nicht in der Klickibunti anzulegen. Das ist (zumindest einfach so) nicht zielführend, da bei Selbstanlage noch nicht mal die ISE_ID stimmen würde.

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 Tipps & Tricks - keine Fragen!“