Seite 4 von 4
Re: Genauerer Batteriestatus auslesbar?
Verfasst: 25.03.2020, 20:38
von tescher
Mit FTK-03 und FTK-04 kamen zwei "Nicht"-IP-Produkte dazu.
Kann dies das Script in's "Schleudern" bringen?
FTK-01 / HMIP-SWDO
FTK-02 / HMIP-SWDO
FTK-03 / HM-Sec-SCo
FTK-04 / HM-Sec-SCo
HTK-01 / HmIP-eTRV-B
HTK-02 / HmIP-eTRV-B
HTK-03 / HmIP-eTRV-B
HTK-04 / HmIP-eTRV-B
Re: Genauerer Batteriestatus auslesbar?
Verfasst: 25.03.2020, 22:24
von Baxxy
tescher hat geschrieben: ↑25.03.2020, 20:38
zwei "Nicht"-IP-Produkte
Daran wird es liegen. Die haben den erforderlichen Datenpunkt nicht, oder der heißt eventuell anders. Da bin ich erstmal raus weil ich die HM-Sec-SCo nicht habe. Mit einem
Script von Alchy könntest du die Sensoren auf ihre vorhandenen Datenpunkte abklopfen, dann kommt man vielleicht weiter.
Grüße
Baxxy
Re: Genauerer Batteriestatus auslesbar?
Verfasst: 26.03.2020, 08:46
von Black
Ein HM-Sec-Sco hat keine expliziete Spannungsangabe im Chan 0
lässt sich einfach kontrollieren (z.B. in IoBroker, welcher halt alle Datenpunkte über RPC importiert, oder mit dem SDV). Der HM-Sec-Sco hat nur einen Datenpunkt LowBat und dieser ist bool. also spannung gut oder Spannung nix gut.
Black
Re: Genauerer Batteriestatus auslesbar?
Verfasst: 16.11.2020, 13:30
von alanodoug
Hallo Leute,
ich nutze das zPNP und kann mir auch per Telegram Nachrichten schicken. Ich habe mal versucht von einem HM-Sec-RHS den Status abzufragen, aber das klappt nicht. Irgendwie kommt es bei mir mit dem script nicht an.
Code: Alles auswählen
!- Batteriestatus Devices Telegram Benachrichtigung
string chatid = "123456789"; ! chat_id des Empfängers
string botAPI = "12345678ghjklkjhgfdfgh2345432"; ! API des eingerichteten Bots
!- Fenstersensoren
real FensterBad = (dom.GetObject(ID_CHANNELS)).Get("HM-FeGr-Bad:1").DPByHssDP("OPERATING_VOLTAGE").Value().ToString(1);
string nachricht = "<b>*Batteriestatus*</b>
----- <b>Fenstergriffe</b> -----
Bad: "# FesterBad #"V;
(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");
wenn ich allerdings dieses nutze kommt eins an
Code: Alles auswählen
string message = "Dies ist ein Test";
sstring chatid = "123456789"; ! chat_id des Empfängers
string botAPI = "12345678ghjklkjhgfdfgh2345432"; ! 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);
Ich habe jetzt versucht es in mein Vorhandenes script, welches schon läuft es hin zu packen aber da passiert dann gar nichts mehr. Bin ich irgendwie blind? Muss ich die Datenpunkte eventuell noch vorher abfragen oder erstellen?
Code: Alles auswählen
! Bateriestatus an Telegramm
! Namen der verwendeten Systemvariablen
string svPushText = "CCU SV Push Text"; ! gem. zPNS-xx, obligatorisch
string svPushPrio = "CCU SV Push Prio"; ! gem. zPNS-xx, obligatorisch
! Name des zentralen Push-Nachrichten-Programms
string zPNP = "CCU PRG Push-Nachrichten"; ! obligatorisch
! +++++ Deklaration weiterer Variablen +++++
string message;
! +++++ Setzen der Priorität für die Push-Nachricht +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("2");
! +++++ Sensoren +++++
real FensterBad = (dom.GetObject(ID_CHANNELS)).Get("HM-FeGr-Bad:1").DPByHssDP("OPERATING_VOLTAGE").Value().ToString(1);
! +++++ Erzeugen der Nachricht +++++
message = "<font color=red>Achtung, Rauch im Haus!</font>";
message = "Aussen: # FensterBad # V";
! +++++ zPNP ausführen +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
(dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();
Wäre super wenn mir mal jemand helfen könnte.
Re: Genauerer Batteriestatus auslesbar?
Verfasst: 16.11.2020, 13:40
von Baxxy
alanodoug hat geschrieben: ↑16.11.2020, 13:30
Ich habe mal versucht von einem HM-Sec-RHS den Status abzufragen, aber das klappt nicht.
Naja, genau wie der HM-Sec-Sco (siehe 2-3 Posts weiter oben) hat auch der HM-Sec-RHS (meines Wissens und laut HM-Geräte Datenpunkt Doku) keinen "OPERATING_VOLTAGE" Datenpunkt. Somit scheitert es schon am auslesen.
Re: Genauerer Batteriestatus auslesbar?
Verfasst: 16.11.2020, 14:50
von alanodoug
JA das scheint so zu sein. Hab ich nicht drauf geachtet aber meine Heizkörperthermostate sollten gehen. Aber da bekomme ich das auch nicht wirklich hin.
Da es keine IP-Geräte sind habe ich den Datenpunkt BATTERY_STATE genommen und es sieht so aus.
Code: Alles auswählen
! Bateriestatus an Telegramm
! Namen der verwendeten Systemvariablen
string svPushText = "CCU SV Push Text"; ! gem. zPNS-xx, obligatorisch
string svPushPrio = "CCU SV Push Prio"; ! gem. zPNS-xx, obligatorisch
! Name des zentralen Push-Nachrichten-Programms
string zPNP = "CCU PRG Push-Nachrichten"; ! obligatorisch
! +++++ Deklaration weiterer Variablen +++++
string message;
! +++++ Setzen der Priorität für die Push-Nachricht +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("2");
! +++++ Sensoren +++++
real FensterBad = (dom.GetObject(ID_CHANNELS)).Get("HM-HkAk-Ankleide:4").DPByHssDP("BATTERY_STATE").Value().ToString(1);
! +++++ Erzeugen der Nachricht +++++
message = "<font color=red>Achtung, Rauch im Haus!</font>";
message = "Aussen: # FensterBad # V";
! +++++ zPNP ausführen +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
(dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();
Allerdings bekomme ich jetzt nur
Aussen: # FensterBad # V angezeigt.
Ich bekomme es mit dem direkten script nicht zum laufen. Irgendwo hängt es bei mir.
Re: Genauerer Batteriestatus auslesbar?
Verfasst: 16.11.2020, 15:09
von Baxxy
alanodoug hat geschrieben: ↑16.11.2020, 14:50
Irgendwo hängt es bei mir.
Heißt dein Kanal 4 des HKT's wirklich...
?
Bitte kontrollieren und oder Screenshot der Benennung posten.
Re: Genauerer Batteriestatus auslesbar?
Verfasst: 16.11.2020, 15:36
von alanodoug
Ich hatte es mit dem script
Code: Alles auswählen
string auswahl = "PEQ1312177";
! +++++++++++++++++++
string index;
string liste = dom.GetObject(ID_DATAPOINTS).EnumUsedNames();
foreach (index, liste) {
var sserial = (index.StrValueByIndex(":",0).StrValueByIndex(".",1));
if (sserial == auswahl) {
Write(index #"\n");
}
}
ausgelesen und das rausbekommen
- BidCos-RF.PEQ1312177:0.AES_KEY
BidCos-RF.PEQ1312177:0.CONFIG_PENDING
BidCos-RF.PEQ1312177:0.DEVICE_IN_BOOTLOADER
BidCos-RF.PEQ1312177:0.INHIBIT
BidCos-RF.PEQ1312177:0.LOWBAT
BidCos-RF.PEQ1312177:0.RSSI_DEVICE
BidCos-RF.PEQ1312177:0.RSSI_PEER
BidCos-RF.PEQ1312177:0.STICKY_UNREACH
BidCos-RF.PEQ1312177:0.UNREACH
BidCos-RF.PEQ1312177:0.UPDATE_PENDING
BidCos-RF.PEQ1312177:4.ACTUAL_TEMPERATURE
BidCos-RF.PEQ1312177:4.AUTO_MODE
BidCos-RF.PEQ1312177:4.BATTERY_STATE
BidCos-RF.PEQ1312177:4.BOOST_MODE
BidCos-RF.PEQ1312177:4.BOOST_STATE
BidCos-RF.PEQ1312177:4.COMFORT_MODE
BidCos-RF.PEQ1312177:4.CONTROL_MODE
BidCos-RF.PEQ1312177:4.FAULT_REPORTING
BidCos-RF.PEQ1312177:4.LOWERING_MODE
BidCos-RF.PEQ1312177:4.MANU_MODE
BidCos-RF.PEQ1312177:4.PARTY_MODE_SUBMIT
BidCos-RF.PEQ1312177:4.PARTY_START_DAY
BidCos-RF.PEQ1312177:4.PARTY_START_MONTH
BidCos-RF.PEQ1312177:4.PARTY_START_TIME
BidCos-RF.PEQ1312177:4.PARTY_START_YEAR
BidCos-RF.PEQ1312177:4.PARTY_STOP_DAY
BidCos-RF.PEQ1312177:4.PARTY_STOP_MONTH
BidCos-RF.PEQ1312177:4.PARTY_STOP_TIME
BidCos-RF.PEQ1312177:4.PARTY_STOP_YEAR
BidCos-RF.PEQ1312177:4.PARTY_TEMPERATURE
BidCos-RF.PEQ1312177:4.SET_TEMPERATURE
BidCos-RF.PEQ1312177:4.VALVE_STATE
und da hab ich mir dann das in die Variable gepackt
! +++++ Sensoren +++++
real FensterBad = (dom.GetObject(ID_CHANNELS)).Get("HM-HkAk-Ankleide:4").DPByHssDP("BATTERY_STATE").Value().ToString(1);
Ich habe auch mal alle Kanäle probiert. Aber nur bei dem 4.ten kommt eine Nachricht durch.
Re: Genauerer Batteriestatus auslesbar?
Verfasst: 16.11.2020, 19:31
von Baxxy
alanodoug hat geschrieben: ↑16.11.2020, 14:50
Allerdings bekomme ich jetzt nur Aussen: # FensterBad # V angezeigt.
Der Fehler steckt weiter unten im Script.
Aus...
mache bitte mal...
Re: Genauerer Batteriestatus auslesbar?
Verfasst: 16.11.2020, 19:59
von alanodoug
Ja das hab ich gerade auch festgestellt. Danke
Bekommt man aber in diesem Script nicht mehr Zeilen hin? So wie im Anfangspost würde ich es gerne Angezeigt bekommen. Allerdings läuft das nicht über die Codierung
Code: Alles auswählen
! +++++ Sensoren +++++
real HkAkAnkleide = (dom.GetObject(ID_CHANNELS)).Get("HM-HkAk-Ankleide:4").DPByHssDP("BATTERY_STATE").Value().ToString(1);
! +++++ Erzeugen der Nachricht +++++
! message = " <b>*Batteriestatus*</b>
! ----- <b>Heizungsregler</b> -----;
message= "Ankleide: "# HkAkAnkleide # "V";
/edit
Habs hinbekommen. Für die die es auch wissen wollen
Code: Alles auswählen
! +++++ Erzeugen der Nachricht +++++
message = " <b>*Batteriestatus*</b>
----- <b>Heizungsregler</b> -----
Ankleide: "# HkAkAnkleide # "V
Bad: "# HkAkBad # "V
Kinderzimmer: "# HkAkKiZi # "V
Schlafzimmer: "# HkAkSchZi # "V
Wohnzimmer: "# HkAkWoZi # "V";