Wie Temperatur vom Thermostat per Pushnachricht versenden

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Wolf6660
Beiträge: 116
Registriert: 03.04.2012, 08:27
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: Wie Temperatur vom Thermostat per Pushnachricht versende

Beitrag von Wolf6660 » 03.01.2018, 18:35

alchy hat geschrieben:Ist nach dem Lesen des obigen Links auch "alles klar" oder erwartest du ein Script?

Alchy
Sorry aber ich finde keinen Anhaltspunkt in wie weit mir der Link behilflich sein soll.

derschlangen
Beiträge: 3
Registriert: 17.12.2017, 02:34

Re: Wie Temperatur vom Thermostat per Pushnachricht versende

Beitrag von derschlangen » 03.01.2018, 19:52

Hallo zusammen
Eigentlich platze ich ja nicht sonin fremde Beiträge hinein aber ich muss da mak eine Frage loswerden:
Was ist die Begründung dafür, dass alle Temperaturen übermittelt werden sollen wenn eine Temperatur den Bereich verletzt? Die explizite Temperatur der Grenzwertberührung kann ich verstehen aber den rest rufe ich doch lieber per querry ab?
Spart Daten auf der Leitung, die wichtige Information wird auchdirekt erkannt und der rest brauch nur abgerufen werden wenn ee gebraucht wird...
Will natürlich nicht ausschließen das du einen Nutzen verfolgst den ich so nicht sehe.

Gesendet von meinem SM-G935F mit Tapatalk

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

Re: Wie Temperatur vom Thermostat per Pushnachricht versende

Beitrag von alchy » 03.01.2018, 23:35

Der Link zeigt dir doch, wie du Datenpunkte abfragen kannst. :shock:

Eigentlich will ich keine Scripte mehr hier posten, aber eine Ausnahme so wie du es ja angeblich haben willst:

Code: Alles auswählen

! Temperaturwerte pushen 
! v0.1 (c) by alchy
Script entfernt
In den 3 Zeilen object zeilen musst du die Seriennummer deiner Sensoren anpassen / bzw. je nach Sensor den Kanal usw.
token und userkey sollten selbsterklärend sein.


Aber das ist eine sehr unflexible Methode (s.O.), aber auch schneller zusammengeschrieben.
Und da du ja eigentlich mehr Sensoren in deinem Programm hast, müsstest du das noch erweitern.

Das Script erstmal unter Script testen ausführen und schauen ob es funzt, dann kannst du es in dein Programm in das dann kopieren.

Alchy
Zuletzt geändert von alchy am 05.01.2018, 19:47, insgesamt 1-mal geändert.
Grund: script entfernt

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.

Wolf6660
Beiträge: 116
Registriert: 03.04.2012, 08:27
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: Wie Temperatur vom Thermostat per Pushnachricht versende

Beitrag von Wolf6660 » 04.01.2018, 09:23

super danke für deine Unterstützung und das du eine Ausnahme gemacht hast. Mit Skripten bin ich noch nicht so Fit diverse Änderungen an bestehenden komme ich meistens hin aber das wars auch schon.

DANKE

Wolf6660
Beiträge: 116
Registriert: 03.04.2012, 08:27
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: Wie Temperatur vom Thermostat per Pushnachricht versende

Beitrag von Wolf6660 » 04.01.2018, 15:42

so ihr hattet recht es wir am Schluss doch zu unübersichtlich wenn ich alle Temperaturen per Nachricht (Telegramm ist hierfür irgendwie besser geeignet als Pushover) zugeschickt bekomme.

Ich habe versucht ein Script zu schreiben das mein Problem behebt. Es funktioniert aber ist es so ideal?

Code: Alles auswählen

string chatid = "xxxxxx";
string botAPI = "xxxxxx";
object wtemp = datapoints.Get("BidCos-RF.xxxxxxxxxx:1.TEMPERATURE");
object etemp = datapoints.Get("BidCos-RF.xxxxxxxxxx:1.TEMPERATURE");
object ktemp = datapoints.Get("BidCos-RF.xxxxxxxxxx:1.TEMPERATURE");
if ( etemp.Value() > 23 ){
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='im Esszimmer ist es "#etemp.Value().ToString(0)#" Grad' -d chat_id="#chatid);
}else {}
if ( wtemp.Value() > 23 ){
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='im Wohnzimmer ist es "#etemp.Value().ToString(0)#" Grad' -d chat_id="#chatid);
}else {}
if ( ktemp.Value() > 23 ){
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='in der Kueche ist es "#etemp.Value().ToString(0)#" Grad' -d chat_id="#chatid);
}else {}
Um eine Rückmeldung wäre ich sehr dankbar.

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

Re: Wie Temperatur vom Thermostat per Pushnachricht versende

Beitrag von alchy » 05.01.2018, 01:41

Wolf6660 hat geschrieben:wenn ich alle Temperaturen per Nachricht zugeschickt bekomme.
Dann begib dich zurück auf Anfang. Noch steht ja alles da.
Wolf6660 hat geschrieben:aber ist es so ideal?
Nö, *IMHO* ist das so nicht ideal gelöst, aber wenn es funktioniert ist es ja auch in Ordnung.

Wenn du nun doch nur den Sensor gemeldet haben möchtest, welcher >23 Grad misst
- ergo der Auslöser deines Programmes ist - begib dich zurück auf Anfang - steht schon im ersten Post meinerseits verlinkt.
Und wenn du es kürzer haben willst als mein Script, dann benutze / durchsuche die Scriptdoku (siehe Signatur)
und / oder benutze die Forensuche nach z.B. $src$

Alchy
ich wusste, ich würde es bereuen.

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.

Juergen_W02
Beiträge: 55
Registriert: 03.07.2019, 23:02
Hat sich bedankt: 20 Mal

Re: Wie Temperatur vom Thermostat per Pushnachricht versenden

Beitrag von Juergen_W02 » 07.12.2019, 05:40

Hallo zusammen,
ich benutze auch Telegramm und würde gerne auch mir die Temperatur von 3 Thermostat mir zusenden lassen. Der Grund dafür ist ich hab die Heizung noch nicht im Griff.

Ich habe den Code so wie ich Ihn verstanden habe, bei mir umgesetzt, aber ich krieg ohne nicht zum laufen, ich hab da auch nicht viel Ahnung. Sorry

Mein jetziger Code:

Code: Alles auswählen

string chatid = "\"https://api.telegram.org/bot332741866:AAH9QxTh5bQ/sendMessage?";
string botAPI = "chat_id=123456789";                                                                                    
object wtemp = datapoints.Get("000A9A4999419F:1.TEMPERATURE");                                  
object etemp = datapoints.Get("000A9A499940B8:1.TEMPERATURE");
object ktemp = datapoints.Get("BidCos-RF.000A9A499940B8:1.TEMPERATURE");                     
if ( etemp.Value() > 23 ){
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='im Esszimmer ist es "#etemp.Value().ToString(0)#" Grad' -d chat_id="#chatid);
}else {}
if ( wtemp.Value() > 23 ){
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='im Wohnzimmer ist es "#etemp.Value().ToString(0)#" Grad' -d chat_id="#chatid);
}else {}
if ( ktemp.Value() > 23 ){
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='in der Kueche ist es "#etemp.Value().ToString(0)#" Grad' -d chat_id="#chatid);
}else {}

Wer kann mir helfen den Code zum laufen bringen?

Ich habe eine CCU3
und CUxD.CUX2801001:1.CMD_EXEC ist angelegt

Wäre Super

Gruß
Jürgen
Zuletzt geändert von alchy am 18.12.2019, 05:27, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

Juergen_W02
Beiträge: 55
Registriert: 03.07.2019, 23:02
Hat sich bedankt: 20 Mal

Re: Wie Temperatur vom Thermostat per Pushnachricht versenden

Beitrag von Juergen_W02 » 16.12.2019, 23:15

Guten Abend,
kann mir jemand den Weg zeigen wie man die Temperatur vom Thermostat per Pushnachricht versenden.

Würde ich mich sehr freuen.

Gruß
Jürgen

Benutzeravatar
Baxxy
Beiträge: 10844
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 609 Mal
Danksagung erhalten: 2229 Mal

Re: Wie Temperatur vom Thermostat per Pushnachricht versenden

Beitrag von Baxxy » 17.12.2019, 00:13

Juergen_W02 hat geschrieben:
16.12.2019, 23:15
kann mir jemand den Weg zeigen wie man die Temperatur vom Thermostat per Pushnachricht versenden.
Eigentlich gibt's doch schon genug Anleitungen hier im Forum und auch mit Google wird man schnell fündig. :shock:

Zuallererst, deinen eigenen Chatbot anlegen... siehe z.B hier: Einrichtung eines Telegram Chat-Bots
Chat-Id und HTTP-Token merken /aufschreiben.

Funktioniert der ChatBot soweit kannst du folgendes Script (Seriennummer Thermostat 3 noch eintragen) über die Script Testen Funktion ausprobieren.

Code: Alles auswählen

string chatid = "123456789"; !- Chat-ID eintragen (bei mir 7-stellige Zahl)
string botAPI = "8xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxw"; !- HTTP-Token eintragen

real wtemp = datapoints.Get("HmIP-RF.000A9A4999419F:1.ACTUAL_TEMPERATURE").Value().ToString(1);  !- <-- Seriennummer Thermostat 1 von dir übernommen
real etemp = datapoints.Get("HmIP-RF.000A9A499940B8:1.ACTUAL_TEMPERATURE").Value().ToString(1);  !- <-- Seriennummer Thermostat 2 von dir übernommen
real ktemp = datapoints.Get("HmIP-RF.000xxxxxxxxxxx:1.ACTUAL_TEMPERATURE").Value().ToString(1);  !- <-- Seriennummer Thermostat 3 noch einzutragen

string nachricht = "<b>Zimmertemperaturen</b>
Zimmer 1:  "#wtemp#"°C
Zimmer 2:  "#etemp#"°C
Zimmer 3:  "#ktemp#"°C";

(dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC")).State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='"#nachricht.ToUTF8()#"' -d chat_id="#chatid#" -d parse_mode=html");
Funktioniert das, kannst du das Script nach bedarf über ein WebUI Programm ausführen lassen.

Grüße
Baxxy

Edit 17.12.19: Code nach dtp's Hinweis (HmIP Seriennummern) geändert.
Zuletzt geändert von Baxxy am 17.12.2019, 09:46, insgesamt 1-mal geändert.

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

Re: Wie Temperatur vom Thermostat per Pushnachricht versenden

Beitrag von dtp » 17.12.2019, 09:35

Wenn ich die Seriennummern der Geräte richtig interpretiere, handelt es sich um HMIP-Thermostate, oder? Deren Temperatur-Datenpunkt ist nicht "TEMPERATURE", sondern "ACTUAL_TEMPERATURE".

Ich halte es aber für Blödsinn, sich regelmäßig mit Push-Nachrichten zumüllen zu lassen, wenn es um die Trendbeobachtung von Messwerten geht. Sowas macht man mit einer Datenbank und entsprechenden History-Werten. Stichworte wären in diesem Zusammenhang CUxD-Highcharts, CCU-Historian oder evtl. auch die CCU-interne Diagramm-Funktion.
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.

Antworten

Zurück zu „HomeMatic allgemein“