Genauerer Batteriestatus auslesbar?

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Benutzeravatar
tescher
Beiträge: 78
Registriert: 25.12.2019, 01:26
Hat sich bedankt: 7 Mal
Danksagung erhalten: 1 Mal

Re: Genauerer Batteriestatus auslesbar?

Beitrag von tescher » 25.03.2020, 20:38

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

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

Re: Genauerer Batteriestatus auslesbar?

Beitrag von Baxxy » 25.03.2020, 22:24

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

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Genauerer Batteriestatus auslesbar?

Beitrag von Black » 26.03.2020, 08:46

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
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

alanodoug
Beiträge: 17
Registriert: 06.09.2020, 22:16
System: CCU
Hat sich bedankt: 6 Mal

Re: Genauerer Batteriestatus auslesbar?

Beitrag von alanodoug » 16.11.2020, 13:30

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.

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

Re: Genauerer Batteriestatus auslesbar?

Beitrag von Baxxy » 16.11.2020, 13:40

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.

alanodoug
Beiträge: 17
Registriert: 06.09.2020, 22:16
System: CCU
Hat sich bedankt: 6 Mal

Re: Genauerer Batteriestatus auslesbar?

Beitrag von alanodoug » 16.11.2020, 14:50

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.

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

Re: Genauerer Batteriestatus auslesbar?

Beitrag von Baxxy » 16.11.2020, 15:09

alanodoug hat geschrieben:
16.11.2020, 14:50
Irgendwo hängt es bei mir.
Heißt dein Kanal 4 des HKT's wirklich...

Code: Alles auswählen

HM-HkAk-Ankleide:4
?

Bitte kontrollieren und oder Screenshot der Benennung posten.

alanodoug
Beiträge: 17
Registriert: 06.09.2020, 22:16
System: CCU
Hat sich bedankt: 6 Mal

Re: Genauerer Batteriestatus auslesbar?

Beitrag von alanodoug » 16.11.2020, 15:36

Bildschirmfoto 2020-11-16 um 15.27.19.png
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.

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

Re: Genauerer Batteriestatus auslesbar?

Beitrag von Baxxy » 16.11.2020, 19:31

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...

Code: Alles auswählen

message = "Aussen:         # FensterBad # V";
mache bitte mal...

Code: Alles auswählen

message = "Aussen: "# FensterBad # "V";

alanodoug
Beiträge: 17
Registriert: 06.09.2020, 22:16
System: CCU
Hat sich bedankt: 6 Mal

Re: Genauerer Batteriestatus auslesbar?

Beitrag von alanodoug » 16.11.2020, 19:59

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";

Antworten

Zurück zu „RaspberryMatic“