Seite 1 von 1

BATTERIELEER - wo ist mein Denkfehler

Verfasst: 23.01.2021, 19:25
von firefox_i
Hallo zusammen,
ich versuche gerade ein Skript in HPCL zu schreiben, das mir den Batteriezustand sämtlicher Batteriaktoren zurückliefert.

Das Makro sieht exemplarisch folgendermaßen aus:
wenn BATTERIELEER(AKTORNAME) dann
bo_Status_aktuell := "leer"
sonst
bo_Status_aktuell := "voll"
endewenn

Die Variable bo_Status_Aktuell kann diese Zustände auch annehmen (ich habe einen entsprechenden Typ auch definiert).

Komischerweise läuft die Bedingung immer in den zweiten Zweig.
Aktuell habe ich 2 Aktoren, die in der Raspberrymatic die Batteriewarnung anzeigen.
Komischerweise ist wie gesagt für die Funktion "BATTERIELEER" beider Aktors die Welt noch in Ordnung.

Der Datenpunkt 0:LOW_BAT der beiden Aktoren meldet "true".
Ich hätte angenommen, dass die Funktion auf den Zustand des o.g. Datenpunktes zugreift....

Wo ist mein Denkfehler?
Oder funktioniert die BATTERIELEER Funktion nicht wie ich sie verstehe?

Ich bin für jede Hilfestellung dankbar...

Als Plan B kann ich immer noch ein Programm in der RM antriggern, das dann die Datenpunkte nativ abfragt und per TCL an HPCL überträgt...aber das ist dann echt von hinten durch die Brust ins Auge....
Und wenn es schon eine Funktion BATTERIELEER gibt, würde ich die auch gerne verwenden.

Danke
Sven

Re: BATTERIELEER - wo ist mein Denkfehler

Verfasst: 23.01.2021, 21:39
von Familienvater
Hi,

interessante Fragestellung :-)
Syntaktisch sieht es richtig aus, es gibt aber z.B. die HM-Wandthermostate, da macht HPCL was eigenes, und meldet glaube ich bei weniger als 2,5V eine leere Batterie (egal was für das Gerät in der Konfig steht).

In welchem Makro/bei welchem Trigger wird das Makro ausgeführt?
Ich könnte mir vorstellen, das es nur funktioniert, wenn wirklich die Meldung auch bei HPCL "einläuft", direkt nach dem Start eines Projekts z.B. weiß das zwar die CCU, aber HPCL weiß noch nichts davon.
Und ich erinnere mich an eine Diskussion mit RK, das es da Inkonsistenzen gab, und je nach Gerät wird die Meldung auch im Kanal x übertragen, und HPCL reagiert evtl. nur auf die Meldung in Kanal x (auch wenn das Gerät da keine Meldung machen würde).

Allgemein meine Vorgehensweise:
Einfach alles vorher "ausgeben", und dann schauen, ob die Abfrage richtig läuft/reagiert, ist leider ätzend, das Try and Error, aber das führt am schnellsten zum Ziel.

Der Familienvater

Re: BATTERIELEER - wo ist mein Denkfehler

Verfasst: 25.01.2021, 15:36
von firefox_i
Hey,
also das Makro führe ich zum einen beim Tageswechsel als auch auf einen dedizierten Druck auf eine virtuelle Taste in der Visu aus.
Effekt ist jedesmal der selbe.

Mir scheint, dass diese BATTERIELEER Funktion nicht auf den Status des Datenpunktes zugreift, sondern eine Art "eigene Intelligenz" besitzt.

Das mit dem "vielleicht muss der Status erst empfangen werden" hab ich auch gedacht.
Aber auch wenn der RTR nun schon mehrfach meldet, dass seine batterie leer ist....HPCL sagt immer noch "alles dufte".

Solche Debugmeldungen erzeuge ich mir auch....dadurch bin cih ja auch draufgekommen.

Ich bin mittlerweile soweit, dass ich in einem Zentralen-Skript, das ich durch HPCL antriggere, die Infos aus den Datenpunkten ziehe und dann via TCL an HPCL überhebe...
Ist zwar von hinten durch die Brust ins Auge, aber dafür habe ich zuverlässig den Zustand, den die Aktoren melden....

Gruß
S.

Re: BATTERIELEER - wo ist mein Denkfehler

Verfasst: 25.01.2021, 16:54
von Daimler
Hi,

um welche Geräte geht es denn überhaupt?

Re: BATTERIELEER - wo ist mein Denkfehler

Verfasst: 26.01.2021, 09:19
von firefox_i
Es geht um folgende Geräte:
- HM-Sec-SCo
- HM-CC-RT-DN
- HM-TC-IT-WM-W-EU

Gruß
S.

Re: BATTERIELEER - wo ist mein Denkfehler

Verfasst: 26.01.2021, 09:58
von Daimler
Hi,

zumindest
- HM-CC-RT-DN
- HM-TC-IT-WM-W-EU
kannst du ja über
Bat:=Heizung_WT.Batteriestatus
Bat:=Heizung_HT.Batteriestatus
händeln - hier bekommst du den Wert in Volt.

Beim Sco müsstest du verm. auf das 'Spezielle Objekt' Batteriemeldungen reagieren.
Habe die Batterieleer Funktion nach nie benutzt.