Zu viel Funkverkehr durch mein Programm?

Begonnen von pointde, 12 April 2015, 11:52:31

Vorheriges Thema - Nächstes Thema

pointde

Ich steuere mein LED16 Display mit je einem Befehl. Erzeuge ich dadurch unnötig viel Funkverkehr? Könnte ich das auch in eine Zeile bringen?
Beim Einschalten:
define LED16_01_ein_notify notify MWSchalter01:on set LED16_01 led red
Beim Ausschalten:
define LED16_01_aus_notify notify MWSchalter01:off set LED16_01 led off


Dietmar63

Das kommt darauf an, wie oft der MWSchalter on bzw. off sendet.
Wenn du zu oft sendest, geht das Sendelimit in die Knie und FS20 hängt sich dann auf.

In einer Zeile kann man das nicht unterbringen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

frank

ZitatIn einer Zeile kann man das nicht unterbringen.
das geht schon, ändert aber nichts am funkverkehr.
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

martinp876

ich hätte es in eine Zeile geschrieben um CPU-performance zu sparen. Jedes notify muss gegenjeden trigger geprüft werden.

define LED16_01_ein_notify notify MWSchalter01:(on|off) { fhem "set  LED16_01 ".($EVENT eq "on"?"red":"off" }

Aber den Funkverkehr bekommt man nicht runter. Das ginge, wenn MWSchalter01 ein HM-Sensor ist. den könnte man dann peeren. MWSchalter01 und LED16 machen es dann untereinander aus. Das spart wirklich

pointde

MWSchalter ist ein 2fach Unterputz Aktor.
Ich habe jetzt mal alle 16 Befehle, so wie du sie geschrieben hast eingegeben. Der Status wird nicht geändert. LED´s bleiben aus...

martinp876

Das notify kannst du sicher selbst debuggen. Wird es angesprungen, ist $EVENT auch on oder off.
Generell wuerde ich das reading trigger nutzen anstelle von state und ausserdem eventonchangereading setzen. Alles auch wegen der performance.
Aber das solltest du dir ansehen, ist das gleiche in ganz fhem. Deine Frage aber ging in den funkverkehr. Du hast 2 aktoren, das koppeln geht also nicht direkt, du brauchst das notify


pointde

Also, ich kann leider den Fehler nicht finden. Mit meinen zwei Zeilen, funktioniert es .
Dein Code ist sauberer aber funktioniert bei mir nicht.
Kannst du mir bitte nochmal helfen?

Wuppi68

define LED16_01_ein_notify notify MWSchalter01:(on|off) { fhem "set  LED16_01 ".($EVENT eq "on"?"red":"off" }

nimm die Klammer raus ...
FHEM unter Proxmox als VM

pointde

Ich habe das jetzt mal mit dem 16er Schalter versucht. Geht leider nicht:
define LED16_16_ein_notify notify MWSchalter16:(on|off) { fhem "set  LED16_16 ".$EVENT eq "on"?"red":"off" }

frank

ich würde die klammer schliessen und ggf den doppelpunkt in der regex ändern:

Zitatdefine LED16_16_ein_notify notify MWSchalter16.(on|off) { fhem "set  LED16_16 ".($EVENT eq "on"?"red":"off") }
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

pointde


Dietmar63

@pointde:
sagte ich doch, dass es fast unmöglich ist.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Pfriemler

Ohne dass ich die Regex-Konstruktion jetzt verstanden hätte, aber muss dass WENN dann nicht

define LED16_16_ein_notify notify MWSchalter16.(on|off) { fhem "set  LED16_16 led ".($EVENT eq "on"?"red":"off") }

heißen?
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

pointde