Servicemeldungen *allinclusive* Script

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

Moderator: Co-Administratoren

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 » 17.02.2017, 16:31

shartelt hat geschrieben: Wie beschrieben habe ich meinen Aktor blockiert, das funktioniert auch. Allerdings bekomme ich nun eine leere Email:

Mein Fehler, sorry :cry:
sollte nun nicht mehr der Fall sein.

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.

Benutzeravatar
shartelt
Beiträge: 7421
Registriert: 14.01.2015, 14:59
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 524 Mal
Danksagung erhalten: 753 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von shartelt » 17.02.2017, 16:33

also einfach Script von der vorderen Seite unter Setup ist zu Ende, finger weg austauschen und gut? ;)

Tante Edit(h) sagt:

nope:

Code: Alles auswählen

Error 1 at row 212 col 98 near ^ =="ja") ){
           string message;
           string newmessage;
Tante Edit(h)² sagt:

passt, hab beide Skripte mal nebeneinander gehabt und nur meine Setups ausgetauscht und es geht...sorry...

homey21
Beiträge: 1113
Registriert: 17.11.2013, 01:54
System: CCU
Hat sich bedankt: 36 Mal
Danksagung erhalten: 3 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von homey21 » 18.02.2017, 16:56

Hallo,

ich habe aktuell wieder eine Servicemeldung "Gerätekommunikation war gestört", die ich mit der Schaltfläche rechts daneben bestätigen und entfernen kann. Ist das so richtig konfiguriert bzw. müsste das Skript nicht eigentlich Meldungen der Vergangenheit ausblenden?

VG homey

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 » 18.02.2017, 17:16

Wenn du
  • das Bestätigen der "war gestört" Meldung im Script aktiviert hast ( var ACCK = "ja"; )
  • das Einrichten des Programmes korrekt ist
dann sollte das Script auch die "Kommunikation war gestört Meldung" bestätigen.
Wurde dir diese Meldung auch per Mail,Push... geschickt?

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.

homey21
Beiträge: 1113
Registriert: 17.11.2013, 01:54
System: CCU
Hat sich bedankt: 36 Mal
Danksagung erhalten: 3 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von homey21 » 18.02.2017, 20:27

Danke, durch das Neukopieren stand ACCK wieder auf "nein". :wink:

PublicBenemy
Beiträge: 6
Registriert: 19.02.2017, 10:42
System: CCU und Access Point
Hat sich bedankt: 2 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von PublicBenemy » 21.02.2017, 11:46

Hi,

vielen Dank für das Skript. Extrem nützlich!

Bin gerade mitten in der Einrichtung einer umfangreichen Homematic-Installation. Dabei habe ich einige Geräte schon angelernt, die aber noch nicht verbaut sind oder noch nicht in Programmen verwendet werden. Zum Beispiel liegen einige funktionsbereite Bewegungsmelder und in einer Kiste, die sich wegen des abmontierten Deckels ständig über Sabotage beschweren.

In der aktuellen Version des Skripts kann man ein einziges Gerät von der Meldung ausschließen. Damit meine Meldung übersichtlich bleibt, möchte ich alle von mir noch nicht benötigten, aber schon angelernten Geräte davon ausschließen. Dazu habe ich in Zeile 143 folgende Änderung vorgenommen:

vorher:

Code: Alles auswählen

if (!serial == BLOCK) {
nachher:

Code: Alles auswählen

if (BLOCK.Find(serial)<0) {
Jetzt kann man im Setup bei der Definition des Geräts, dessen Systemmeldungen nicht verschickt werden sollen, mehrere Seriennummern mit einem beliebigen Trennzeichen eintragen. Ich hab zum Beispiel ein Semikolon genommen. Genaugenommen bräuchte man eigentlich gar keins, aber das macht es dann doch etwas unübersichtlich.


Viele Grüße,
Ben.

coronaxxl
Beiträge: 31
Registriert: 07.01.2017, 19:20
Danksagung erhalten: 3 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von coronaxxl » 21.02.2017, 12:24

Hallo Zusammen,

wenn die Servicemeldungen zurückgesetzt werden, warum wird die Systemvariable nicht auch zurückgesetzt. Sprich ich habe eine Kommunikationsstörung anstehen, konnte das Problem beheben, aber die Systemvariable zeigt weiterhin die Störung an obwohl in der CCU der Wert der Meldungen gleich 0 ist.
Mache ich hier etwas falsch?

Grüße

MyGustav
Beiträge: 6
Registriert: 14.02.2017, 08:04
Hat sich bedankt: 1 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von MyGustav » 21.02.2017, 13:26

getan, gemacht und funtioniert... :D
auch bei mir... :shock:
danke an alchy... :D :D

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 » 21.02.2017, 22:00

coronaxxl hat geschrieben: wenn die Servicemeldungen zurückgesetzt werden, warum wird die Systemvariable nicht auch zurückgesetzt.
Richte das Programm mal bitte
Wenn Servicemeldungen größer oder gleich 0 bei Aktualisierung ein


@PublicBenemy
das war doch schon mal drin. :shock: Danke noch mal für den Hinweis, hab es (wieder)eingebaut.

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.

suffix
Beiträge: 3
Registriert: 03.03.2017, 16:52

Re: Servicemeldungen *allinclusive* Script

Beitrag von suffix » 04.03.2017, 14:53

Hallo,

mit dem Skript habe ich so meine Schwierigkeiten. Die erstellte Meldung wird nicht via Telegram verschickt.

In der Übersicht der Variable erscheint der passende Text aus dem Bereich Servicemeldungen, siehe Screenshot. Die Variable varService habe ich als Zeichenkette angelegt und den Bot via Telegram auch eingerichtet. Beim manuellen Aufrufen passt auch alles.

Im Einsatz sind bei mir nur HMIP-Geräte, die an die CCU2 (RaspberryMatic 2.25.15.20170114) angelernt sind. CUXD habe ich gemäß Anleitung eingerichtet
9 x HMIP-SWDO, 2 x HMIP-SMI, 1 x HmIP-WRC6, 1 x HMIP-PS, 1 x HMIP-PSM

Dadurch, dass die Übergabe Richtung Telegram nicht so richtig zu funktionieren scheint, habe ich die Einstellung im Skript mehrfach geprüft und geschaut, dass ich das "bot" bei der BOT-API nicht mitkopiert habe. Sieht aber alles gut aus und funktioniert, wenn ich die URL im Browser zusammensetze auch wie gewünscht. Die im beigefügten Code fett markierten Sachen habe ich bei mir angepasst, den Rest nicht.
Beim Programm habe ich es erst wie im Setup stehend eingerichtet, danach noch die beigefügte Anpassung vorgenommen, jedoch auch hier ohne Erfolg.

Erstelle ich ein ein Programm zum Testen mit dem folgenden Skript, erscheint die Nachricht via Telegramm ebenfalls, allerdings ist hier der \ am Ende sehr wichtig.

Code: Alles auswählen

string stderr;
string stdout;
string url="\"https://api.telegram.org/bot<BOT-API>/sendMessage?chat_id=<CHATID>&text=Dies ist ein Test[b]\[/b]"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);
Anbei das von mir angepasste Setup.

Code: Alles auswählen

! Servicemeldungen auslesen und weiter verarbeiten zusammengetragen von Alchy & dtp
! v1.5
! Zum Benutzen: Neues Programm in der CCU wie folgt erstellen:
! WENN Systemzustand: Servicemeldungen im Wertebereich größer als 0 bei Aktualisierung auslösen
! DANN mit einer Sekunde Verzögerung Skript (und dann dieses Script komplett einfügen und mit o.k. bestätigen
! In den ersten Zeilen des Scriptes Setup durchführen !

! ++++++ Allgemeine Infos ++++++ UTF8
! Servicemeldungen bei Kommunikationsstörungen "war gestört" wird durch das Script bestätigt (konfigurierbar)
! Im Falle einer Batterieleermeldung, wird der Gerätename und der Batterietyp sowie die Anzahl der Batterien ,
! sonst bei einer anderen Servicemeldung wird der Gerätename und der Fehler (übersetzt) entweder
! ausgegeben / in Variable gespeichert / per prowl / pushover versendet und / oder per Mail verschickt
! das Ganze sollte sowohl als auch funktionieren.
! Bitte Infos bei den Setup durchlesen und beachten, im Zweifelsfalle einfach nachfragen.
! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

! ++++++ ToDo ++++++
! Fehlermeldungen - Batterietypen aktualisieren
! prio für prowl und pushover besser integrieren


!++++++ SETUP ++++++
! Bitte in Ruhe die nächsten Zeilen durcharbeiten
var WITHTIME = "ja"; ! Wenn ja, wird die Alarmzeit Zeit mitgesendet
! +++++ Servicemeldungen "Kommunikation war gestört" bestätigen? ++++++
var ACCK = "ja"; ! ja oder nein, um anstehende "war Kommunikationsstörungen" zu bestätigen
! HM Gerät, wessen Systemmeldungen nicht verschickt werden sollen
var BLOCK = "JEQ012345678 NEP987654321"; ! Seriennummern von Geräten, welche durch das Script ignoriert werden sollen 

!++++++ PUSHBULLET +++++++++
var USE_PUSHBULLET = "nein"; ! ja oder nein für die Verwendung PUSHBULLET direkt im Script;
var USER ="++++++++++++++++++++"; ! selbsterklärend
var DEVICE_IDEN = "+++++++++++++++++++";
var PUSHBULLET_CUXD_ID = "CUX2801001:4"; !welches CUXD.EXEC Gerät mit Kanal soll verwendet werden ?
var TITEL = "Homematic"; !kann jeder nennen wie er will

!++++++ TELEGRAM +++++++++
var USE_TELEGRAM = "[b]ja[/b]"; ! ja oder nein für die Verwendung TELEGRAM direkt im Script;
var CHATID = "[b]ChatID[/b]"; ! selbsterklärend
var BOTAPI = "[b]BOTAPIY[/b]"; ! dito
var TELEGRAM_CUXD_ID = "CUX2801001:2"; !welches CUXD.EXEC Gerät mit Kanal soll verwendet werden ?

!++++++ Prowl Setup fuer die Apfeljünger +++++++++
! 1. Prowl einrichten ( http://homematic-forum.de/forum/viewtopic.php?f=19&t=7797 )
! 2. cuxd Installation erforderlich
var USE_PROWL = "nein"; ! ja oder nein für die Verwendung prowl direkt im Script;
var API_KEY ="DEIN API KEY"; ! selbsterklärend
var PROWL_CUXD_ID = "CUX2801001:3"; !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 TIME_OUT = "10";

!+++++++ Pushover Setup ++++++
! 1. pushover einrichten ( http://homematic-forum.de/forum/viewtopic.php?f=31&t=11579 )
! 2. cuxd Installation erforderlich
var USE_PUSHOVER = "nein"; ! das Übliche
var PUSH_CUXD_ID = "CUX2801001:2"; !welches CUXD.EXEC Gerät mit Kanal soll verwendet werden ?
var USERKENNUNG = "++++++++++++++++++++";
var TOKEN = "++++++++++++++++++++++++";
var USERDEVICE = ""; ! welches eingerichtete Gerät soll die Meldung bekommen? leer = alle Geräte sonst Namen komma separiert
var RETRY = "30"; !wiederholungen des Alarm bei prio >1
var EXPIRE = "120"; ! wie lange bis verfällt
var SOUND = "siren"; !Sound nach wahl siehe "https://pushover.net/api#sounds"
var HTML ="1"; ! 1 use html codes at the message

var PRIO = "1";
var PRIO_MAX = "-2"; ! siehe http://homematic-forum.de/forum/viewtopic.php?f=31&t=24618&start=530#p288205

!+++++++ Setup Mail verschicken mit CUXD und Emailaddon ++++++
! 1. CUXD incl. exec Gerät sind installiert ( http://homematic-forum.de/forum/viewtopic.php?f=37&t=15298 )
! 2. Mailaddon ist installiert eingestellt und funktioniert ( http://www.homematic-inside.de/software/email )
! 3. Im TCL Reiter im MailAddon wird als erste Zeile "set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]" ohne Anführungsstriche eingegeben
! 4. in Mailvorlage Nr deiner Wahl wird "$serviceliste" ohne Anführungsstriche im Mailtextfeld eingegeben (was da noch steht ist uninteressant)
var USE_MAIL = "nein"; !   ja / nein schicken einer Mail direkt über das Script
var MAIL_ID = "01"; !  die VORHER präparierte Mailvorlage 01 - 50 in der aktuellen Version des mailaddon
var MAIL_CUXD_ID = "CUX2801001:1"; !   die Serial des EXEC Geräte - wer nicht weiss was ich meine, einfach so lassen ist die Standard

!+++++++ Systemvariablen Setup ++++++
! 1. Vor Benutzung Systemvariable vom Typ Zeichenkette in CCU anlegen,
var USE_SYSVAR = "[b]ja[/b]"; ! ja / nein Speichern der Ausgabe des Scriptes in Systemvariable
var SYSVAR_NAME = "[b]varService[/b]"; ! hier den Namen dieser Variablen eintragen
Vielleicht hat noch jemand Anhnung ob ich irgendwo einen Denkfehler habe oder etwas vergessen habe.
Für Unterstützung bin ich sehr gerne dankbar.
Dateianhänge
varService2.png
varService2.png (9.45 KiB) 1810 mal betrachtet
varService1.png
varService1.png (9.72 KiB) 1810 mal betrachtet
Systemlog.png
Logfile RaspberryMatic
Systemlog.png (10.39 KiB) 1810 mal betrachtet
ProgrammServicemeldungen.png
Programm Servicemeldungen

Antworten

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