XML-API: Duty Cycle auslesen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Benutzeravatar
michi1911
Beiträge: 15
Registriert: 17.04.2022, 22:56
System: CCU
Hat sich bedankt: 3 Mal

Re: XML-API: Duty Cycle auslesen

Beitrag von michi1911 » 25.04.2022, 14:00

Roland M. hat geschrieben:
25.04.2022, 13:53
Betrachte das false bzw. true hier als "Ok" und "Nicht ok".
Du kannst hier nicht den DC in Prozenten ablesen, sondern nur unter oder über einer Schwelle, wobei ich jetzt nicht ganz sicher bin, ob das 100% sind, oder darunter. Ich glaube aber es sind wirklich 100%. Wenn das Gerät nicht mehr senden kann, dann wird der Datenpunkt auf true gesetzt.
Roland
Ah...danke fuer die schnelle und verstaendliche Antwort!
Habe ich mir schon gedacht, vielen Dank fuer die Bestaetigung.

...have fun...
Michi

Benutzeravatar
michi1911
Beiträge: 15
Registriert: 17.04.2022, 22:56
System: CCU
Hat sich bedankt: 3 Mal

Re: XML-API: Duty Cycle auslesen

Beitrag von michi1911 » 27.04.2022, 11:27

Hallo!

Ich hatte Erfolg mit der Methode C aus der von Alchy referenziert Liste zum Auslesen des Duty Cycles.
1. Programm auf der CCU3 mit dem Script aus Methoder C. eingerichtet.
2. Passende Systemvariable angelegt.

3. Starten des CCU3-Programm via XML-API:

Code: Alles auswählen

http://<IP-DEINER-CCU>/config/xmlapi/runprogram.cgi?program_id=<my_program_id>
4. Aulesen der Variable via XML-API:

Code: Alles auswählen

http://<IP-DEINER-CCU>/config/xmlapi/sysvar.cgi?ise_id=<my_variable_id>
5. Parsen des Wertes aus der XML response 4.
6. Goto 3

Sehr schoen...vielen Dank fuer den Support, speziell an Alchy..."Mission accomplished".
...und ich habe was ueber die Box gelernt...also war der Tag nicht vergebens. :D :D :D

...have fun...
Michi

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

Re: XML-API: Duty Cycle auslesen

Beitrag von Baxxy » 27.04.2022, 19:13

Ich hätte noch eine Methode parat die ohne zyklisch getriggertes Script auf der CCU3 auskommt.

Einfach das Funkmodul der CCU3 mit Hilfe von Alchy's Script "freischalten".

Dann kannst du den DC (und CS) über die statelist.cgi des XML-API-AddOns direkt abgreifen.
(oder die Werte mit einer SysVar synchronisieren)

Code: Alles auswählen

<datapoint name="HmIP-RF.001F98AXXXXXXX:0.CARRIER_SENSE_LEVEL" type="CARRIER_SENSE_LEVEL" ise_id="3054" value="0.000000" valuetype="4" valueunit="%" timestamp="1651078656" operations="5"/>
<datapoint name="HmIP-RF.001F98AXXXXXXX:0.DUTY_CYCLE_LEVEL" type="DUTY_CYCLE_LEVEL" ise_id="3055" value="1.000000" valuetype="4" valueunit="%" timestamp="1651078656" operations="5"/>

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

Re: XML-API: Duty Cycle auslesen

Beitrag von alchy » 27.04.2022, 20:27

Baxxy hat geschrieben:
27.04.2022, 19:13
Ich hätte noch eine Methode
Dabei aber dafür sorgen das das dauerhaft geschieht.
Ein Firmewareupdate sollte das zusätzliche Gerät entfernen und man muss dies dann wieder durchführen.

Stellt sich die Farge wieso und wie das Programm mit dem Script nun überhaupt über /xmlapi/runprogram.cgi? gestartet wird
Vielleicht startet er das Programm ja nur, wenn es ihn mal interessiert wie der DutyCycle grad ist.

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.

Benutzeravatar
michi1911
Beiträge: 15
Registriert: 17.04.2022, 22:56
System: CCU
Hat sich bedankt: 3 Mal

Re: XML-API: Duty Cycle auslesen

Beitrag von michi1911 » 28.04.2022, 07:27

Baxxy hat geschrieben:
27.04.2022, 19:13
Ich hätte noch eine Methode parat die ohne zyklisch getriggertes Script auf der CCU3 auskommt.

Einfach das Funkmodul der CCU3 mit Hilfe von Alchy's Script "freischalten".

Dann kannst du den DC (und CS) über die statelist.cgi des XML-API-AddOns direkt abgreifen.
(oder die Werte mit einer SysVar synchronisieren)

Code: Alles auswählen

<datapoint name="HmIP-RF.001F98AXXXXXXX:0.CARRIER_SENSE_LEVEL" type="CARRIER_SENSE_LEVEL" ise_id="3054" value="0.000000" valuetype="4" valueunit="%" timestamp="1651078656" operations="5"/>
<datapoint name="HmIP-RF.001F98AXXXXXXX:0.DUTY_CYCLE_LEVEL" type="DUTY_CYCLE_LEVEL" ise_id="3055" value="1.000000" valuetype="4" valueunit="%" timestamp="1651078656" operations="5"/>
Aaaah...das ist, was ich urspruenglich gesucht habe. Der "Umweg" ueber die Variable ist fuer mich eher ein workaround.
Muss ich mir genauer Anschauen, wenn ich Zeit habe.
@Alchy: Noch eine dumme Frage, bleiben dein Program (Variante C) und die Variable ueber einen FW-Update erhalten? Oder muss man die eh' neu installieren? Wenn dem so waere, waere es ja praktisch keine Unterschied zum erneuten Freischalten des Funkmodules!?

Schoen...lerne ich, was man alles mit der CCU machen kann.
...Danke und have fun...
Michi

Benutzeravatar
michi1911
Beiträge: 15
Registriert: 17.04.2022, 22:56
System: CCU
Hat sich bedankt: 3 Mal

Re: XML-API: Duty Cycle auslesen

Beitrag von michi1911 » 28.04.2022, 07:47

alchy hat geschrieben:
27.04.2022, 20:27
Vielleicht startet er das Programm ja nur, wenn es ihn mal interessiert wie der DutyCycle grad ist.
"Er" startet das Program jedesmal bevor ich die Variable auslese. Sonst wuerde ich ja einen alten duty cycle "value" erhalten.
Ist mit der Freischalt-Methode also unnoetig!?
Das Device nach FW update wieder freizuschalten koennte ich moeglicherweise auch automatisieren? Und wenn das nicht geht, ist manuelles Freischalten auch ok. Ich lade ja nicht jeden Tag eine neue FW.

...have fun...
Michi

Nachtrag: Ist ja perfekt so...werde ich nutzen:

Code: Alles auswählen

<state>
  <device name="HmIP-CCU3 001F9Dxxxxxxxx" ise_id="2410">
    <channel name="HmIP-CCU3 001F9Dxxxxxxxx:0" ise_id="2411">
      <datapoint name="HmIP-RF.001F9Dxxxxxxxx:0.CARRIER_SENSE_LEVEL" type="CARRIER_SENSE_LEVEL" ise_id="2412" value="0.000000" valuetype="4" valueunit="%" timestamp="1651135042"/>
      <datapoint name="HmIP-RF.001F9Dxxxxxxxx:0.DUTY_CYCLE_LEVEL" type="DUTY_CYCLE_LEVEL" ise_id="2413" value="2.500000" valuetype="4" valueunit="%" timestamp="1651135042"/>
      <datapoint name="HmIP-RF.001F9Dxxxxxxxx:0.INCLUSION_UNSUPPORTED_DEVICE" type="INCLUSION_UNSUPPORTED_DEVICE" ise_id="2414" value="" valuetype="20" valueunit="" timestamp="0"/>
    </channel>
  </device>
</state>
Danke Euch vielmals...damit ist mein "requirement" zu 100% erfüllt :mrgreen: :mrgreen: :mrgreen:
@Alchy: Noch eine letzte Frage:
Kann man das "Freischaltscript" auch in eine Program "giessen"...um es dann nach Bedarf via XML-API zu starten?
Ist ja leicht, festzustellen, ob die CCU3 das "HmIP-CCU3" device anbietet...und wenn nicht, dann einfach das "Freischaltscript" via runscript.cgi starten!? Das wäre dann super-supi :mrgreen: :mrgreen: :mrgreen:

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

Re: XML-API: Duty Cycle auslesen

Beitrag von alchy » 28.04.2022, 19:46

michi1911 hat geschrieben:
28.04.2022, 07:27
@Alchy: Noch eine dumme Frage, bleiben dein Program (Variante C) und die Variable ueber einen FW-Update erhalten?
Eine Systemvariable behält seinen Status über einen Reboot hinweg. (Außer ISE_ID 950 Anwesenheit)
Natürlich kann es jedoch passieren das ein Firmewareupdate dazu führt, das das Script nicht mehr funktioniert. Die Gefahr besteht ja immer. :wink:
Ich wollte nur darauf hinweisen, das das Freischalten des Funkmoduls und damit die Bereitstellung des Gerätes mitsamt seiner Datenpunkte ein Firmwareupdate nicht überlebt (wenn ich mich recht erinnere)
Was auch immer du danach strickst läuft also Gefahr nicht immer zu funktionieren. Also muss man da vorsorgen.

Was nicht heißen soll, das der Weg mit der Freischaltung des Gerätes schlecht ist. Im Gegenteil - grundsätzlich macht die Freischaltung das Auslesen mittels meines Scriptes ja unnötig da dadurch die entsprechenden Datenpunkte für Carriersense Level und DutyCycle zur Verfügung stehen. Damit kann man ohne Umweg Programme füttern usw. usw. Nur vorsorgen für ein Firmewareupdate muss man.
michi1911 hat geschrieben:
28.04.2022, 07:47
Kann man das "Freischaltscript" auch in eine Program "giessen"...um es dann nach Bedarf via XML-API zu starten?


Natürlich kann man das.
Es ist ein Script, welches in einem Programm zur Ausführung kommen kann.
Warum du alles per XML-API starten willst ist mir zwar immer noch ein Rätsel, aber jeder wie er mag.
michi1911 hat geschrieben:
28.04.2022, 07:47
"Er" startet das Program jedesmal bevor ich die Variable auslese. Sonst wuerde ich ja einen alten duty cycle "value" erhalten.
Der Hinweis von Baxxy war ja etwas ohne zyklische Ausführung zu erhalten.
Ich dachte mir schon irgendwie, das du das gar nicht vor hast sondern nur ab und an.
Auch das ist für mich unverständlich. :mrgreen:
Mein Script bietet an den Duty Cycle im Fehlerprotokoll zu speichern was wiederum den Vorteil hat, das man ohne viel zutun auch mal nachschauen kann, wie sich der DutyCycle so den ganzen Tag entwickelt hat und man hat einen Heartbeat im Log usw.
Und es ist ja nebenbei nicht so, das die CCU den DutyCycle im Sekundentakt aktualisiert.
Aber auch hier gilt, jeder so wie er es mag.

Und wie gesagt, grundsätzlich ist das Script obsolet mit der Freischaltung des Gerätes wie verlinkt und eben jeder wie er mag.

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.

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

Re: XML-API: Duty Cycle auslesen

Beitrag von Baxxy » 28.04.2022, 23:23

alchy hat geschrieben:
28.04.2022, 19:46
Nur vorsorgen für ein Firmewareupdate muss man.
Wie stellt man das an?
Die /etc/crRFD.conf müsste ja nach dem CCU3-Firmware-Update gepatched werden noch bevor die Dienste starten.

Grüße, Baxxy

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: XML-API: Duty Cycle auslesen

Beitrag von jp112sdl » 29.04.2022, 07:05

Baxxy hat geschrieben:
28.04.2022, 23:23
Die /etc/crRFD.conf müsste ja nach dem CCU3-Firmware-Update gepatched werden noch bevor die Dienste starten.
Am Unkompliziertesten ist es wohl, nach einem Update noch ein zweites Mal neu zu starten.
Update...Neustart...crRFD patchen...Neustart...
Selbst das könnte man noch automatisieren

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

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

Re: XML-API: Duty Cycle auslesen

Beitrag von Baxxy » 29.04.2022, 08:41

Hmm, würde das RPI-RF-MOD dann nicht (beim 1. regulärem Neustart nach dem Zentralenupdate) aus den Programmen fliegen die man eventuell zum Auslesen benutzt?
Es wäre ja zu diesem Zeitpunkt nicht (mehr) vorhanden.

Eigentlich müsste sich eQ-3 einen Ruck geben und das per default aktivieren.
Dann wären alles Systeme (CCU3 / Derivate / RM) auf dem gleichen Stand.

Grüße, Baxxy

Antworten

Zurück zu „HomeMatic allgemein“