Batterieabfrage Script für IP funktioniert nicht

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

hasenr1
Beiträge: 11
Registriert: 19.04.2019, 19:56

Re: Batterieabfrage Script für IP funktioniert nicht

Beitrag von hasenr1 » 19.04.2019, 19:58

Hey ist es denn auch möglich von einem Funkteilnehmer den Status abzufragen und nicht von allen?

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

Re: Batterieabfrage Script für IP funktioniert nicht

Beitrag von alchy » 19.04.2019, 20:35

Ja, natürlich ist dies möglich.
Die >> Abfrage von Datenpunkten per HM-Script <<
ist in der Doku (siehe Signatur) beschrieben und hinter dem Link ein bisschen praxisorientierter.

Alchy

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.

hasenr1
Beiträge: 11
Registriert: 19.04.2019, 19:56

Re: Batterieabfrage Script für IP funktioniert nicht

Beitrag von hasenr1 » 19.04.2019, 20:58

ja das XML-API habe ich drauf, wegen Tablet Akku Abfrage, aber die Batterie Abfrage Operating_Battery abzufragen habe ich immer noch nicht verstanden, vielleicht kannst du mir das Schritt für Schritt erklären zu einem Script.
Also ich habe z.B. einen Heizthermostat HM-IP

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

Re: Batterieabfrage Script für IP funktioniert nicht

Beitrag von alchy » 19.04.2019, 21:25

hasenr1 hat geschrieben:
19.04.2019, 20:58
ja das XML-API habe ich drauf,
Das ist mir ziemlich egal. Es ist nur eine der genannten Möglichkeiten um an Datenpunkte zu kommen.
Lies dir doch das verlinkte noch mal durch.

hasenr1 hat geschrieben:
19.04.2019, 20:58
Also ich habe z.B. einen Heizthermostat HM-IP
Diese Aussage ist mir zu wenig oder zu ungenau. Es gibt HssTypen wie HmIP-WTH-2 , HmIP-STHD, HM-TC-IT-WM-W-EU usw. welche du angeben kannst.

hasenr1 hat geschrieben:
19.04.2019, 20:58
aber die Batterie Abfrage Operating_Battery
Denkst du, wenn du einfach alles durcheinander würfelst wird es einfacher für dich?
BATTERY_STATE oder OPERATING_VOLTAGE usw. hat in jedem Fall nichts mit Operating_Battery zu tun.

Wenn ich der verlinkten Anleitung lesen würde, würde ich auf:

Code: Alles auswählen

var ipserial = (datapoints.Get("HmIP-RF.000E9569A2410E:0.OPERATING_VOLTAGE")).Value();
WriteLine(ipserial);
kommen, um die Batteriespannung bei einem HmIP-WTH-2 auszugeben.



Alchy

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.

hasenr1
Beiträge: 11
Registriert: 19.04.2019, 19:56

Re: Batterieabfrage Script für IP funktioniert nicht

Beitrag von hasenr1 » 19.04.2019, 21:34

Schreibst leicht gereizt.

Sorry meinte OPERATING_VOLTAGE.

Es sind 9 x HmIP-eTRV-2 und ich möchte jede einzelnt angezeigt bekommen, da ich AIO Mediola habe und da keine gesamte haben möchte(Anzeige).

Ich weiss das ich eine Verknüpfung mit Zeit alle 30 min Abfrage mache und nur das Script fehlt mir dazu.
Ich weiss auch das diese Status-Abfrage in ....:0 hinterlegt ist und sogar eine in XML_API eine eigene ID hat nur ich weiss nicht ganz genau wie ich das in einem Script zusammen füge sodas er mir das in der Systemvariablen-Anzeige in der CCU3 anzeigt!!!

Sorry für die Dummheit

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

Re: Batterieabfrage Script für IP funktioniert nicht

Beitrag von alchy » 19.04.2019, 21:55

hasenr1 hat geschrieben:
19.04.2019, 21:34
Schreibst leicht gereizt.
Das ist deine Interpretation. Ich bin weder sonderlich aufgeregt noch gereizt.
Höchstens enttäuscht.

hasenr1 hat geschrieben:
19.04.2019, 21:34
Sorry für die Dummheit
Auch das ist deine Interpretation. Bei mir musst du dich bei mir nicht entschuldigen.


Oben steht ein Script, welches dir die Batteriespannung ausgeben sollte. Habe keine solche Geräte und bin zu faul für dich die Doku zu durchsuchen.
Wenn das Script die Spannung eines deiner Geräte ausgibt, dann enthält ipserial also in dem Script den Spannungswert eines deiner Geräte.

Wenn du :

Code: Alles auswählen

dom.GetObject(ID_SYSTEM_VARIABLES).Get("Name deiner Speichervariable").State(ipserial);
anhängst, und alles gut geht, würde also das Script zur Laufzeit den Spannungswert der Batterie auslesen und in die Systemvariable "Name deiner Speichervariable" speichern.

Alchy

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.

hasenr1
Beiträge: 11
Registriert: 19.04.2019, 19:56

Re: Batterieabfrage Script für IP funktioniert nicht

Beitrag von hasenr1 » 19.04.2019, 22:08

Vielen Dank für die letzten Script eintrag der hat mir gefehlt, jetzt zeigt er ihn auch an :-), voll Happy jetzt kann ich das in AIO einfügen.

Vielen Vielen Dank

Dekat
Beiträge: 7
Registriert: 21.06.2021, 23:21
System: CCU
Hat sich bedankt: 2 Mal

Re: Batterieabfrage Script für IP funktioniert nicht

Beitrag von Dekat » 18.11.2023, 22:03

Hier mal ne Version die alle Bat Werte samt Seriennummer als Json String Systemvariabel anlegt, auch lowbat Werte werden gefunden und eingetragen.

Code: Alles auswählen

var systemVar = "Bats"; 
! systemVar= Name der SystemVariablen in der die Json erstellt wird bsp--> {Seriennummer:wert,}
! Es werden auch lowbat Werte eingetragen, wenn die Batterie low is "true" ansonsten "false"

string sDevId; string sChnId; string sDPId; string json;
json = json #"{"; 
foreach (sDevId, root.Devices().EnumUsedIDs()) {
    object oDevice = dom.GetObject(sDevId);
    foreach(sChnId, oDevice.Channels()) {
        object oChannel = dom.GetObject(sChnId);
        foreach(sDPId, oChannel.DPs().EnumUsedIDs()) {
            object oDP = dom.GetObject(sDPId);
				    if(oDP.TypeName() == "HSSDP") {
                ! WriteLine(oDP.HssType()); Debug
                if((oDP.HssType() == "BATTERY_STATE") || (oDP.HssType() == "OPERATING_VOLTAGE") || (oDP.HssType() == "LOWBAT")) {
                    json = json #'\"' #oDevice.Address().ToString(1) #'\"' #":" #oDP.Value().ToString(1) #",";
				        }
			      }
		    }
	  }
}
if(json.Length() > 1) {
    json = json.Substr(0,(json.Length()-1));
}
json = json #"}";
if (dom.GetObject(ID_SYSTEM_VARIABLES).Get(systemVar)) { 
    dom.GetObject(ID_SYSTEM_VARIABLES).Get(systemVar).State(json); 
    WriteLine(json #" \r\t in SystemVariablen: " #systemVar #" eingetragen");
}else{
    WriteLine("\tAchtung: SystemVariablen: " #systemVar #" : für den Json String:\n"#json #"\n\t nicht vorhanden, bitte vorher als String unter SystemVariablen anlegen!");
}

Antworten

Zurück zu „HomeMatic allgemein“