Probleme mit Skript "Servicemeldungen *allinclusive* Script"

HMIP lokale Installation

Moderator: Co-Administratoren

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

Probleme mit Skript "Servicemeldungen *allinclusive* Script"

Beitrag von suffix » 17.03.2017, 17:28

Hallo,

ich habe noch immer Probleme damit, dass das Skript Servicemeldungen *allinclusive* Script von alchy nicht funktioniert, siehe Thread viewtopic.php?f=31&t=24618&start=850. Damit ich den dortigen Thread nicht unnötig in die Länge ziehe, möchte ich gerne einen eigenen eröffnen. Zumal ich versehentlich meine korrekten Daten gepostet hatte und die Nachrichten von alchy bei mir eingegangen sind. Somit kann der Fehler nur auf meiner Seite liegen.
Ich kann mir das ganze nicht wirklich erklären, weswegen ich nun Schritt für Schritt beschreiben möchte, welche Tätigkeiten ich durchgeführt habe.

Mein Raspberrymatic wurde in der Zwischenzeit mehrfach neu installiert, d.h. das Image neu auf die SD-Karte aufgespielt und CUXD eingerichtet. Da es inzwischen die neusten Versionen gibt, habe ich diese heute ebenfalls installiert. Das bedeutet aktuell:

Raspmatic: 2.27.7.20170316
CUXD: Version 1.9

Nach dem ersten Start von Raspmatic habe ich CUXD installiert:
  • Auf der CUXD-Oberfläche unter Geräte als Gerätetyp 28 System ausgewählt, danach bei der Funktion Exec und als Geräte-Icon Fernbedienung 19 Tasten.
  • Das Gerät wurde danach auf Raspmatic WebUI unter Geräte->Posteingang erkannt und fertig gestellt.
  • Anschließend erfolgte ein kontrollierter Neustart der Raspmatic
cuxd_screen1.png
cuxd_screen1.png (17.97 KiB) 639 mal betrachtet
Im oben aufgeführten Thread habe ich dann folgendes gelesen:

Code: Alles auswählen

WriteLine(dom.GetObject(41).Name());
Damit erfolgte die Ausgabe:

Code: Alles auswählen

${sysVarServiceMessages}
Durch Eingabe des folgendes Codes wird nun die Variable korrekt angezeigt.

Code: Alles auswählen

dom.GetObject(41).Name("Servicemeldungen");
Danach habe ich die Systemvariable varService mit dem Typ Zeichenkette angelegt (siehe Screenshot) und das Programm erstellt.
systemvariablen.png
systemvariable_varService.png
systemvariable_varService.png (8.79 KiB) 639 mal betrachtet
prog_Servicemeldungen.png
Das Skript habe ich wie folgt angepasst:

Code: Alles auswählen

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

Code: Alles auswählen

!+++++++ Systemvariablen Setup ++++++
! 1. Vor Benutzung Systemvariable vom Typ Zeichenkette in CCU anlegen,
var USE_SYSVAR = "ja"; ! ja / nein Speichern der Ausgabe des Scriptes in Systemvariable
var SYSVAR_NAME = "varService"; ! hier den Namen dieser Variablen eintragen
Ich hatte zu diesem Zeitpunkt noch keines meiner HMIP-Geräte angelernt und es wurde keine Servicemeldung angezeigt.
Anschließend habe ich einen HMIP-SWDO (Fensterkontakt) angelernt und entsprechend einen Namen gegeben.
fensterkontakt.png
fensterkontakt.png (20.69 KiB) 639 mal betrachtet
geraete.png
Anzeige vorher:
systemvariable2.png
Um eine Servicemeldung zu erzeugen, entnehme ich die Abdeckung, sodass der Typ Sabotage erzeugt wird. Die Variable varService verändert teilweise auch die Bezeichnung und zeigt alles an, allerdings bleibt "ALTE Servicemeldung" drin stehen. Sobald ich den Deckel wieder drauf mache, nimmt die Variable varService den Wert "ALTE Servicemeldung" wieder an.

Anzeige danach:
varservice_meldung.png
Das ist die Anzeige, die alchy in dem oben aufgeführten Thread angefragt hatte.
Wenn du das "Speichern in Variable" jetzt auch aktiviert hast, schau doch bitte mal, was in der Variablen steht, nachdem du eine neue Servicemeldung erzeugst.
Das folgende Skript habe ich gefunden um zu schauen ob das mit CUxD und Telegram grundsätzlich funktioniert.
Dieses habe ich bei Skript testen eingegeben und die Nachricht kommt bei mir an.

Code: Alles auswählen

string message = "Tagestest";
string chatid = "ChATID"; ! chat_id des Empfängers
string botAPI = "BOTAPI"; ! API des eingerichteten Bots 
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='"#message#"' -d chat_id="#chatid);
Auch habe ich es bereits mit einem anderen Bot ausprobiert.

Im Fehlerlog steht folgendes - für mich nichts aussagekräftiges - drin:

Code: Alles auswählen

Mar 17 16:17:43 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 16:17:43 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 16:20:47 homematic-raspi daemon.info cuxd[509]: CUx-Daemon restart
Mar 17 16:20:47 homematic-raspi daemon.info cuxd[1112]: write_pid /var/run/cuxd.pid [1112]
Mar 17 16:20:47 homematic-raspi daemon.info cuxd[1112]: CUx-Daemon(1.9) on CCU(2.27.7.20170316) start PID:1112
Mar 17 16:20:47 homematic-raspi daemon.info cuxd[1112]: write_proxy /var/cache/cuxd_proxy.ini (127.0.0.1 8700 1112 /usr/local/addons/cuxd/ 1.9)
Mar 17 16:21:06 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 16:21:06 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 16:23:36 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 16:23:36 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 16:24:02 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 16:24:02 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 16:25:07 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 16:25:07 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 16:29:49 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 16:29:49 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 16:29:57 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 16:29:57 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 16:30:00 homematic-raspi cron.info crond[209]: USER root pid 1388 cmd /bin/SetInterfaceClock 127.0.0.1:2001
Mar 17 16:59:42 homematic-raspi local0.err ReGaHss: Error: IseESP::ExecError= Execution failed: [-1] 0 0x00 [0] 97 0x61 [1] 0 0x00 [2] 99 0x63 [3] 0 0x00 [4] 100 0x64  [../Platform/DOM/iseESPexec.cpp (11622)]
Mar 17 17:00:00 homematic-raspi cron.info crond[209]: USER root pid 2089 cmd /bin/SetInterfaceClock 127.0.0.1:2001
Mar 17 17:00:00 homematic-raspi cron.info crond[209]: USER root pid 2090 cmd /bin/setHWClock.sh
Mar 17 17:03:21 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 17:03:21 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 17:03:50 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 17:03:50 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 17:03:53 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 17:03:53 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 17:06:28 homematic-raspi local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 1 col 92 near ^/curl -s -k https://api.telegram.org/botBOTAPI^M  [../Platform/DOM/iseESP.cpp (1067)]
Mar 17 17:06:28 homematic-raspi local0.err ReGaHss: Error: ParseProgram: SyntaxError= /curl -s -k https://api.telegram.org/botBOTAPI/sendMessage -d text=Tagestest -d chat_id=CHATID); [../Platform/DOM/iseESP.cpp (348)]
Mar 17 17:06:29 homematic-raspi local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 1 col 92 near ^/curl -s -k https://api.telegram.org/botBOTAPI^M  [../Platform/DOM/iseESP.cpp (1067)]
Mar 17 17:06:29 homematic-raspi local0.err ReGaHss: Error: ParseProgram: SyntaxError= /curl -s -k https://api.telegram.org/botBOTAPI/sendMessage -d text=Tagestest -d chat_id=CHATID); [../Platform/DOM/iseESP.cpp (348)]
Mar 17 17:06:49 homematic-raspi local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 1 col 92 near ^/curl -s -k https://api.telegram.org/botBOTAPIi^M  [../Platform/DOM/iseESP.cpp (1067)]
Mar 17 17:06:49 homematic-raspi local0.err ReGaHss: Error: ParseProgram: SyntaxError= /curl -s -k https://api.telegram.org/botBOTAPI/sendMessage -d text=Tagestest -d chat_id=CHATID); [../Platform/DOM/iseESP.cpp (348)]
Mar 17 17:07:05 homematic-raspi local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 1 col 92 near ^/curl -s -k https://api.telegram.org/botBOTAPI5i^M  [../Platform/DOM/iseESP.cpp (1067)]
Mar 17 17:07:05 homematic-raspi local0.err ReGaHss: Error: ParseProgram: SyntaxError= /curl -s -k https://api.telegram.org/botBOTAPI/sendMessage -d text=Tagestest -d chat_id=CHATID); [../Platform/DOM/iseESP.cpp (348)]
Mar 17 17:08:27 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 17:08:27 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 17:09:07 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 17:09:07 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 17:11:00 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 17:11:00 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 17:11:07 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 17:11:07 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Mar 17 17:11:23 homematic-raspi user.debug script: [ALCHY ALLINScript START]
Mar 17 17:11:23 homematic-raspi user.debug script: [ALCHY ALLINScript ENDE]
Das folgende Skript habe ich ausprobiert und es erscheint auch die Meldung CCU ist mit der Welt verbunden

Code: Alles auswählen

string stderr;
string stdout;
integer Auslese;
system.Exec("ping -c 1 www.google.de",&stdout, &stderr);
Auslese = stdout.Find("ms");
if ( Auslese == -1 )
{
WriteLine("CCU ist NICHT mit der Welt verbunden");
}
if ( Auslese > 0)
{
WriteLine('CCU ist mit der Welt verbunden');
}
Da ich davon ausgehe, dass ich hier grundlegende Probleme habe, wollte ich nicht nochmal mehr HMIP-Geräte einbinden. Die Firmware auf dem HMIP-SWDO ist aktuell: 1.10.7
Gerne kann ich weitere Skripts ausprobieren und Ausgaben durchführen um festzustellen woran es bei mir scheitert. Die Beschreibung des Skripts ist ja eigentlich ziemlich eindeutig und klar, weswegen man da eher wenig falsch machen kann. Dennoch schaffe ich das offenbar.

Silver_surfer_ii
Beiträge: 2
Registriert: 31.03.2018, 17:46

Re: Probleme mit Skript "Servicemeldungen *allinclusive* Scr

Beitrag von Silver_surfer_ii » 01.04.2018, 19:00

Hallo sufix und den rest des Forums,

Bei mir war es so das in der Systemvariable die Servicemeldungen angezeigt wurden aber ich keine Telegram nachricht bekommen hab. Bei mir war es so das das "GO" nicht ausgeführt wurde das dom.getobject(41).value() und lastvalue() immer gleich waren.
also als versuch unter script testen das nachfolgende eingeben, am besten wenn eine Meldung vorliegt.

var test = dom.GetObject(41).Value();
var test2 = dom.GetObject(41).LastValue();
WriteLine(test);
WriteLine(test2);

Bei mir waren die beiden Ausgaben immer gleich.

Ich hab mir damit geholfen die Anzahl der Servicemeldungen in eine Variable zu schreiben und die dann im Script nach der Auswertung diese dann neu zu schreiben.
Da ich das ganze aus dem Kopfschreibe kann ich das ganze erst später genauer erklären.

Hoffe das es hilft

Antworten

Zurück zu „HomeMatic IP mit CCU“