reading state

Begonnen von Atze, 28 Oktober 2015, 20:29:39

Vorheriges Thema - Nächstes Thema

Atze

Hallo zusammen, ich hoffe das Thema wurde nicht schon durchgekaut.

Beim schalten meiner IT-1500 werden die readings nicht umgesetzt. Eine Erklärung dafür kam aus einem anderen Thema.
Zitatdie ursache liegt im IT modul. hier wird noch direkt auf interne variablen zugegriffen um das state reading zu ändern statt die (inzwischen) dafür vorgesehenen readingsXXUpdate routinen zu verwenden. dadurch generiert fhem kein event.

das ist z.b. auch auf den normalen device detail seiten zu sehen. das state reading wird nicht per longpoll aktualisiert und in der javascript ist zu sehen das nur das geänderte icon aktualisiert wird und nicht das state reading.

eine readingsGroup die state eines IT device verwendet würde auch nicht funktionieren.
statt in fhem oder in homebridge einen workaround dafür zu bauen ist es glaube ich besser bei den IT leuten darauf hin zu weisen und zu bitten das das umgestellt wird.
gruss andre
http://forum.fhem.de/index.php/topic,32652.msg351427.html#msg351427

Wenn das so richtig ist , wird dass evt. noch geändert oder könnte das jemand anpassen ?

Danke und Gruss Andreas
FHEM 5.8 , RPi 2 / CUL 3.2 / JEELINKnano - PCA301 / nanoCUL a-culfw 1.05.03
HMS: rm1002, s300th / FHT: fht8v-3, fht80tf
FS20: fs20st, fs20sm8, fs20s8m, fs20rsu, fs20rbm, fs20pce, fs20pcs, fs20ue1, fs20irp2, fs20dwt, fs20rpt-3, fs20str-2, fs20kse
IT: ITDM-250, ITLS-16, ITW-852, IT-1500
G-Data Milight

Tommy82

Würde ich mich auch darüber freuen


Gesendet von iPhone mit Tapatalk
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

octek0815

Gib es hier schon eine Lösung?

spikeh1

Morgen zusammen.

Ich behelfe mir dabei mit einem notify.
Alle meine IT-Devices beginnen bei mir mit it_. Beispiel: it_lampe_wohnzimmer

Mein notify sieht dann so aus:

it.*:.* setreading $NAME state $EVENT


MfG

octek0815

Zitat von: spikeh1 am 13 März 2016, 08:09:30
Morgen zusammen.

Ich behelfe mir dabei mit einem notify.
Alle meine IT-Devices beginnen bei mir mit it_. Beispiel: it_lampe_wohnzimmer

Mein notify sieht dann so aus:

it.*:.* setreading $NAME state $EVENT


MfG

Danke für den Hinweis. Funktioniert prima, auch wenn es besser im Modul gelöst werden sollte.

spikeh1

Zitat von: octek0815 am 13 März 2016, 13:47:13
Danke für den Hinweis. Funktioniert prima, auch wenn es besser im Modul gelöst werden sollte.

Da hast du wohl recht aber es wurde ja gefragt ob es eine Lösung gibt und diese funktioniert vorerst super.

MfG

Ralf9

Hallo,

ich habe versucht die readings anzupassen. Da auch das "set" ein event erzeugt, hatte ich mit
readingsSingleUpdate($lh, 'state', $value, 1);
doppelte events.

Das
readingsSingleUpdate($lh, 'state', $value, 0);
funktioniert seltsamerweise nur wenn ich es über InternalTimer ausführe.
Ich hoffe mir ist es wie gewünscht gelungen
https://github.com/Ralf9/test/commit/d933017b1232b5d29bfa1e76b3bc82d6c3d92fb4

Hier ist die angepasste 10_IT.pm
update all https://raw.githubusercontent.com/Ralf9/test/master/controls_signalduino.txt

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Atze

Danke Danke Danke, funktioniert bei mir.
FHEM 5.8 , RPi 2 / CUL 3.2 / JEELINKnano - PCA301 / nanoCUL a-culfw 1.05.03
HMS: rm1002, s300th / FHT: fht8v-3, fht80tf
FS20: fs20st, fs20sm8, fs20s8m, fs20rsu, fs20rbm, fs20pce, fs20pcs, fs20ue1, fs20irp2, fs20dwt, fs20rpt-3, fs20str-2, fs20kse
IT: ITDM-250, ITLS-16, ITW-852, IT-1500
G-Data Milight

Ralf9

Die jetztige Lösung mit dem
readingsSingleUpdate($lh, 'state', $value, 0);
gefällt mir noch nicht so richtig.
Es kann sein, daß dies nicht in allen Fällen sauber funktioniert. Mir ist aufgefallen, daß es zu Beeinflussungen zwischen den readingsSingleUpdate und dem event vom set-Befehl in fhem kommen kann. Der set event wird in einigen Fällen durch die readingsSingleUpdate unterdrückt.

Sauberer wäre die Lösung mit dem
readingsSingleUpdate($lh, 'state', $value, 1);
Damit wird beim Setzen des state Readings auch ein event erzeugt. Dies hat dann aber zur Folge, daß es doppelte events gibt.
Haben die doppelten events nicht händelbare Nachteile?

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

justme1968

warum verwendet du den internal timer?

set erzeugt nur dann ein event selber wenn keine der ReadingsUpdate funktionen aufgerufen wurde.

das erzeugen des automatsichen events kann man unterdrücken. aber eigentlich sollte das set gleich die readings schreiben und gut ist.

meiner meinung nach macht es auch keinen sinn auf das get zu warten. der cul empfäng ja nicht wirklich etwas vom aktor.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Ralf9

Zitat von: justme1968 am 17 März 2016, 13:45:57
warum verwendet du den internal timer?
Durch den internal timer wird beim "readingsSingleUpdate($lh, 'state', $value, 0);" die unterdrückung vom set event verhindert.

Zitat von: justme1968 am 17 März 2016, 13:45:57
set erzeugt nur dann ein event selber wenn keine der ReadingsUpdate funktionen aufgerufen wurde.
Danke, dieser Zusammenhang hat mir gefehlt.
Dann scheint es im IT-Modul an dieser Stelle ein Problem zu geben. Durch das aufrufen von
readingsSingleUpdate($lh, 'state', $value, 1);
oder
readingBulkUpdate
wird das set event nicht verhindert und die Events sind doppelt.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ralf9

ich habe es jetzt auf readingsBulkUpdate mit event umgestellt.
Nun habe ich doppelte events:
2016-03-17 18:23:54 IT IT_F00000000F_test on
2016-03-17 18:23:54 IT IT_F00000000F_test on
2016-03-17 18:23:55 IT IT_F00000000F_test off
2016-03-17 18:23:55 IT IT_F00000000F_test off

2016-03-17 18:24:25 IT IT_0011101101010011010010111000000 dim: 87
2016-03-17 18:24:25 IT IT_0011101101010011010010111000000 dim87%
2016-03-17 18:24:25 IT IT_0011101101010011010010111000000 dim87%


Wenn ich das readingsEndUpdate auf keine events (0) ändere, kommen beim "IT_F00000000F_test" keine events mehr. Weder vom Modul noch vom set.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ralf9

Zitat von: justme1968 am 17 März 2016, 13:45:57
meiner meinung nach macht es auch keinen sinn auf das get zu warten. der cul empfäng ja nicht wirklich etwas vom aktor.

Ich habe nun die readingsSingleUpdate vor das get eingefügt. Nun passt es, das set event wird wie gewünscht unterdrückt und das doppelte event ist weg.
https://github.com/Ralf9/test/commit/cd648c107484dc715335d319601b7c9424eda4c5

Hier ist das angepasste IT-Modul:
update all https://raw.githubusercontent.com/Ralf9/test/master/controls_signalduino.txt

Ich habe folgende Anpassungen und Änderungen vorgenommen:

  • Ergänzungen beim logging und umstellung auf Log3.
  • Beim readingsupdate werden jetzt events erzeugt.
  • Beim "on-till" beim V3 dimmer war ein Fehler, es müsste jetzt funktionieren
  • Beim SIGNALduino wird jetzt das IOWrite verwendet

@bjoernh liest Du hier auch mit?
Es wäre schön, wenn Du die Änderungen übernehmen könntest, falls es für Dich so passt.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7