Seite 1 von 2

[GELÖST] dom.GetObject liefert immer 0

Verfasst: 04.06.2020, 07:21
von Malz1902
Hallo zusammen,

ich habe in meiner CCU ein Skript, welches mir die aktuelle Rollohöhe in eine Variable speichert sobald das Rollo steht und es eine Änderung in der Höhe gibt.. Seit ein paar Tagen geht das nicht mehr, ich bekomme immer 0 zurück geliefert.

Code: Alles auswählen

real leve1l;
real level2;
var level1 = dom.GetObject("HmIP-RF.XXXXXXXXXX:3.LEVEL").Value()*100;
var level2 = dom.GetObject("HmIP-RF.XXXXXXXXXX:4.LEVEL").Value()*100;
WriteLine(level1);
WriteLine(level2);

Re: dom.GetObject liefert immer 0

Verfasst: 04.06.2020, 09:14
von MichaelN
Warum definierst Du die Variable 2x und das mit unterschiedlichen Typen?
Funktioniert es vielleicht, wenn Du die erste (überflüssige) Definition weglässt?

Re: dom.GetObject liefert immer 0

Verfasst: 04.06.2020, 09:30
von Malz1902
In der CCU steht es bisher immer so:

Code: Alles auswählen

real level;
level = dom.GetObject("HmIP-RF.XXXXXXX:3.LEVEL").Value()*100;
dom.GetObject("Rollo_Esszimmer").State(level);
Aber auch das klappt nicht

Hatte auch schon :4.LEVEL getestet

Re: dom.GetObject liefert immer 0

Verfasst: 04.06.2020, 09:30
von LibertyX
Vielleicht isses auch der Tippfehler in Zeile 1

Re: dom.GetObject liefert immer 0

Verfasst: 04.06.2020, 09:33
von Malz1902
LibertyX hat geschrieben:
04.06.2020, 09:30
Vielleicht isses auch der Tippfehler in Zeile 1
Hatte das gerade hier abgetippt und wohl ein l zu viel gemacht, in der CCU steht es ohne Tippfehler aber auch da kommt 2mal 0 zurück für :3.LEVEl nd :4.LEVEL obwohl das Rollo bei 83 steht. Weil im ioBroker wird auf :3.LEVEL die echte Höhe angezerigt, aber in der CCU nicht

Re: dom.GetObject liefert immer 0

Verfasst: 04.06.2020, 09:38
von Matsch
Wie wäre es, wenn du nicht mit 100, sondern mit 100.0 multiplizieren würdest?
Vielleicht macht die Zentrale hier eine implizite Typkonvertierung? Dann wäre der Wert des Gerätes nämlich immer 0.

Re: dom.GetObject liefert immer 0

Verfasst: 04.06.2020, 09:42
von Malz1902
Matsch hat geschrieben:
04.06.2020, 09:38
Wie wäre es, wenn du nicht mit 100, sondern mit 100.0 multiplizieren würdest?
Vielleicht macht die Zentrale hier eine implizite Typkonvertierung? Dann wäre der Wert des Gerätes nämlich immer 0.
Werde ich heute Abend mal testen, aber auch wenn ich das *100 weg nehme hatte ich gestern Abend oimmer 0 zurück bekommen

Re: dom.GetObject liefert immer 0

Verfasst: 04.06.2020, 10:13
von jp112sdl
Die eingangs aufgeführte Doppeldeklaration ist zwar nicht schön, aber nicht schädlich.
Mit den klassischen BidCos-RF Aktoren funktioniert (dort natürlich auf :1) genau dieses Skript-Snippet.
Bildschirmfoto 2020-06-04 um 10.12.53.png
HmIP hab ich nicht... aber kann es evtl. am falschen Kanal liegen?

Re: dom.GetObject liefert immer 0

Verfasst: 04.06.2020, 10:24
von MichaelN
:3.LEVEL sollte richtig sein

Re: dom.GetObject liefert immer 0

Verfasst: 04.06.2020, 10:35
von Malz1902
bis vor e9nigen Tagen lieft das auch

Code: Alles auswählen

real level;
level = dom.GetObject("HmIP-RF.XXXXXXX:3.LEVEL").Value()*100;
dom.GetObject("Rollo_Esszimmer").State(level);
Aber jetzt warum auch immer nicht mehr. RaspberryMatic hatte ich auch nicht aktualsiert in den letzten Wochen.