Script für Prowl - Übermittlung der Außentemperatur - HmIP-STHO

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
kammerflimmern
Beiträge: 38
Registriert: 12.12.2014, 17:51
Hat sich bedankt: 1 Mal

Script für Prowl - Übermittlung der Außentemperatur - HmIP-STHO

Beitrag von kammerflimmern » 01.10.2018, 20:06

Hallo liebe Gemeinde,

ich komme anhand der vorhandenen Einträge leider nicht wirklich weiter, so dass ich diesen neuen Beitrag eröffne.
Es geht um den neu gekauften Außentemperatursensor HmIP-STHO.
Ich würde gerne morgens eine Meldung per Prowl erhalten, der mir die aktuelle Temperatur zu einer definierten Uhrzeit ausgibt.

Dazu habe ich mich jetzt über eine Stunde durch das Forum gewühlt, jedoch keine adäquate Lösung gefunden, die bei mir funktioniert.

In der CCU 2 habe ich ein Programm erstellt:
Als erstes habe ich eine zeitliche Bedingung gesetzt. Bsp. 06:00 Uhr täglich, unendlich.

Dann ein Script als Aktivität

Code: Alles auswählen

string itemp = dom.GetObject(ID_DATAPOINTS).Get("HmIP-RF.000XXXXXXXX:1.ACTUAL_TEMPERATURE").Value().ToString(1);
string message = ("Guten Morgen,  die Außentemperatur beträgt aktuell "#itemp #" Grad Celsius");
string url="http://prowl.weks.net/publicapi/add?apikey=[PRI-1]API_KEY&application=HomeMatic&priority=0&description="#message#"&timeout=10";
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - '"#url#"'");
Gerätenummer und Key sind natürlich in Realität richtig notiert
Aber genau das funktioniert nicht.
Hat jemand eine Idee, wo ich den Fehler habe?

Ich bedanke mich für eure Unterstützung!

Liebe Grüße
Kammerflimmern
Zuletzt geändert von alchy am 25.02.2019, 17:47, insgesamt 3-mal geändert.
Grund: Titel geändert
CCU3, Raumthermostate, Heizungsthermostate, Rauchmelder, CO Melder, Wassermelder, Bewegungsmelder, Tür-/Fensterkontakte, Wassermelder, Türklingel, Videoüberwachung, RFID, Displays, div. Aktoren

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Prowlsrcipt Außentemperatur - Wo ist der Fehler?

Beitrag von dtp » 02.10.2018, 07:41

Was sollen denn die Klammern um den "message"-String? Die gehören da nicht hin. Zudem könnte Prowl empfindlich auf Umlaute und Sonderzeichen reagieren.

Code: Alles auswählen

string itemp = dom.GetObject(ID_DATAPOINTS).Get("HmIP-RF.000XXXXXXXX:1.ACTUAL_TEMPERATURE").Value().ToString(1);
WriteLine(itemp);
string message = "Guten Morgen, die Außentemperatur beträgt aktuell "#itemp#" Grad Celsius.";
message = message.ToUTF8();
string url="http://prowl.weks.net/publicapi/add?apikey=[PRI-1]API_KEY&application=HomeMatic&priority=0&description="#message#"&timeout=10";
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - '"#url#"'");
Den Eintrag "[PRI-1]API_KEY" ersetzt du durch deinen Schlüssel?
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

kammerflimmern
Beiträge: 38
Registriert: 12.12.2014, 17:51
Hat sich bedankt: 1 Mal

Re: Prowlsrcipt Außentemperatur - Wo ist der Fehler?

Beitrag von kammerflimmern » 03.10.2018, 00:53

GELÖST

Ich habe mich ein bisschen versucht und eine funktionierende Lösung gefunden!
Mit diesem Script kann man sich die aktuelle Temperatur, sowie die aktuelle Luftfeuchte per Prowl zu einer definierten Zeit schicken lassen.
Das Script ist getestet und aggiert einwandfrei.

Ich habe es in der Praxis wie folgt eingesetzt:
Bild

Das passende Script lautet:

Code: Alles auswählen

string itemp = dom.GetObject(ID_DATAPOINTS).Get("HmIP-RF.HIER_KOMMT_DIE_GERÄTEADRESSE_REIN:1.ACTUAL_TEMPERATURE").Value().ToString(1);
WriteLine(itemp);

string ihumi = dom.GetObject(ID_DATAPOINTS).Get("HIER_KOMMT_DIE_GERÄTEADRESSE_REIN:1.HUMIDITY").Value().ToString(1);
WriteLine(ihumi);

message = message.ToUTF8();

! iPhone Push Benachrichtigungen über Prowl
! Hier Ihren API Key eingeben
string APIKey = "[PRI-1]HIER KOMMT DER PROWL KEY REIN";

! Hier das Event der Push Nachricht angeben
string event = "iPhone Push Event";

! Hier den Inhalt der Push Nachricht angeben
string PushText;
PushText = "Guten Morgen, die Außentemperatur beträgt aktuell "#itemp#" Grad Celsius. Die Luftfeuchtigkeit beträgt "#ihumi#"%";

!
! Den Rest bitte 1:1 kopieren
!
string stdout;
string stderr;
string teilstr;
string sendtext = "";
string sendevent = "";
string sendapikey = "";

foreach(teilstr, APIKey.Split(" "))
{
sendapikey = sendapikey # "+" # teilstr;
}

foreach(teilstr, event.Split(" "))
{
sendevent = sendevent # "+" # teilstr;
}

foreach(teilstr, PushText.Split(" "))
{
sendtext = sendtext # "+" # teilstr;
}

system.Exec ("/bin/sh /etc/config/addons/mh/prowl.sh "# sendapikey # " " # sendevent # " " # sendtext, &stdout, &stderr);
Danke für die Unterstützung!
CCU3, Raumthermostate, Heizungsthermostate, Rauchmelder, CO Melder, Wassermelder, Bewegungsmelder, Tür-/Fensterkontakte, Wassermelder, Türklingel, Videoüberwachung, RFID, Displays, div. Aktoren

kammerflimmern
Beiträge: 38
Registriert: 12.12.2014, 17:51
Hat sich bedankt: 1 Mal

Re: Srcipt für Prowl - Übermittlung der Außentemperatur - HmIP-STHO

Beitrag von kammerflimmern » 22.02.2019, 23:14

Jetzt doch noch einmal eine Frage an die Profis.
Das Script funktioniert neuerdings nicht mehr und ich kann den Fehler nicht finden. Es hat von jetzt auf gleich aufgehört zu funktionieren.
Aktor funktioniert einwandfrei und lässt sich problemlos manuell abrufen.
Hat jemand eine Idee, was der Fehler sein könnte?
CCU3, Raumthermostate, Heizungsthermostate, Rauchmelder, CO Melder, Wassermelder, Bewegungsmelder, Tür-/Fensterkontakte, Wassermelder, Türklingel, Videoüberwachung, RFID, Displays, div. Aktoren

Antworten

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