rollo notstop mit doif realisieren?

Begonnen von the ratman, 02 März 2016, 21:09:55

Vorheriges Thema - Nächstes Thema

the ratman

hallo,

ich möchte gerne (derzeit noch theoretisch, weil ich immer noch auf den elektriker warte) ein aussenrollo vor dem fahren hindern, wenn ein magnetkontakt offenen zustand meldet.
im idealfall sperrt das doif sowohl befehle von fhem als auch von der tasterwippe selber.

dazu hab ich mal hier aus div. forendiskussionen ein paar sachen zusammengetragen und hätte jetzt von den profis hier gerne ein go/nogo oder gleich ne intelligentere/bessere lösung.
da ich das ganze zum lernen nehmen will, wäre ne erklärung zu änderungen dann natürlich das tüpfelchen auf dem i.

magnetkontakt: HM-SEC-SC-2
schaltaktor: HM-LC-Bl1PBU-FM
define NotStop_TerrassenRollo
DOIF ([MK_Fliegengitter:state] eq "closed")
   (set WZ_Terrasse_Rollo regSet shActionType on self01;; set WZ_Terrasse_Rollo regSet lgActionType on self01;;
    set WZ_Terrasse_Rollo regSet shActionType on self02;; set WZ_Terrasse_Rollo regSet lgActionType on self02;;
    set WZ_Terrasse_Rollo inhibit off;;)
DOELSE
   (set WZ_Terrasse_Rollo regSet shActionType off self01;; set WZ_Terrasse_Rollo regSet lgActionType off self01;;
    set WZ_Terrasse_Rollo regSet shActionType off self02;; set WZ_Terrasse_Rollo regSet lgActionType off self02;;
    set WZ_Terrasse_Rollo inhibit on;;)


jetzt die frage: funzt das konstrukt oder liegt ihr schon vor lachen am boden?
→do↑p!dnʇs↓shit←

frank

Zitatim idealfall sperrt das doif sowohl befehle von fhem als auch von der tasterwippe selber.
ich finde, am besten ist es immer, sowas direkt zu probieren.

mit get regList bekommst du einen überblick der möglichen register und deren werte. bist du sicher, dass es actiontype=on gibt? das müsste wahrscheinlich eher jmpToTarget sein.

inhibit sperrt peers. falls es auch mit eigenen peers funktioniert (self01/2), brauchst du keine actionType register verbiegen. am besten probieren.

das schalten aus fhem heraus hast du bisher aber noch nicht abgedeckt. das könntest du erreichen, indem du das schalten aus fhem über virtuelle buttons machst. zb mit einem virtuellen chn deiner vccu peeren, der dann auch über inhibit gesperrt wäre.
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

the ratman

vielen dank für die infos.
wär ja super, wenn ich gar nur inhibit bräuchte.

könnte ich die fhem-interne sperrung nicht eventuell über nen watchdog machen?
ich bilde mir ein, irgendwas in der richtung "watchdog zum sperren" mal im forum gelesen zu haben, find aber den beitrag nicht mehr.
→do↑p!dnʇs↓shit←

frank

Zitatkönnte ich die fhem-interne sperrung nicht eventuell über nen watchdog machen?
ob nun notify, at, doif oder watchdog ist ja erstmal egal. entscheidend ist der befehl zum sperren.

es gäbe noch attr dummy oder disable. hier wird dann aber wahrscheinlich zuviel gesperrt.
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

the ratman

zu viel kann ma wohl ned sperren. der rolladen soll ja eigentlich tatsächlich "toter mann" spielen, ist mir ganz recht. kann ich wenigstens keinen schrott mit befehlen von anderer stelle bauen.

zum attr dummy find ich jetzt allerdings leider auch ned grade abendfüllende infos.
die hilfe gibt hier nur her, dass es das attr gibt. magst mir kurz auf die sprünge helfen?
→do↑p!dnʇs↓shit←

frank

wahrscheinlich werden mit attr dummy keine msgs von fhem an das device gesendet, empfangene msgs aber dennoch verarbeitet. einfach mal probieren.
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

the ratman

#6
sobald ich meinen blöden nulleiter beim schalter hab wird probiert *g*

zumindest hast mir schöne richtungen ind infos geben - thx dafür nochmal.

nachtrag:

hab das jetzt mal mit nem hm dimmer probiert.
"dummy 1" und "dummy 0" verhindern tatsächlich das schalten. nur wenn man den dummy dann wieder löscht damit man überhaupt schalten kann, wird der zustand hergestellt, den man vorher nicht erreichen konnte wegen sperre.
mal schaun, ob das bei den rollos auch so sein wird - wäre blöd, wenn mir das ding dann irgendwie irgendwann los fahrt.
→do↑p!dnʇs↓shit←

the ratman

so, nun hab ich meinen nulleiter und die rollos funzt soweit ...

mein doif mag aber nicht so 100% und ich komm nicht dahinter.

([MK_Fliegengitter:state] eq "closed")
      (deleteattr WZ_Terrasse_Rollo dummy; set WZ_Terrasse_Rollo inhibit off; )

   DOELSE
      (attr WZ_Terrasse_Rollo dummy 1; set WZ_Terrasse_Rollo inhibit on;)
(ohne jegliche weitere attribute bei doif und zumindest ändert ein "do alwas" nichts am verhalten.)

verhalten:
o) im geschlossenen zustand alles o.k.
o) im offenen zustand lässt sich nichts mehr über fhem steuern, ABER die hardwaretaste schaltet nur 1 mal nicht. drücke ich ein 2. mal fährt das rollo trotzdem.
das weitaus schlimmere daran: ich kriege mit dem doif nach einiger zeit (wenn ich teste) ein "missing ack" auf verschiedenen rollos, dass ich nur durch neu anlegen des schalters weg kriege (manchesmal "nur" mit neu pairen).
nachdem das vor meinen doif-tests nicht aufgetreten ist, nehm ich mal an, es hängt damit zusammen.
x) lösche ich die 2 dummy-befehle raus, funktioniert der schalter wie er soll, also: funktionslos bei offenem magnet und schaltbar bei geschlossenem magnet. nutzt nur nix, weil dann ja leider fhem noch schaltbefehle senden kann.

man sieht mich ratlos ...
→do↑p!dnʇs↓shit←

frank

(attr WZ_Terrasse_Rollo dummy 1; set WZ_Terrasse_Rollo inhibit on;)
das kann ja schon mal vom prinzip her nicht funktionieren.
wenn du attr dummy setzt, wird ja nichts mehr gesendet.  ;)
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

the ratman

#9
naja, dummy war ja ne idee von dir *g*
Zitat von: frank am 03 März 2016, 12:48:35
wahrscheinlich werden mit attr dummy keine msgs von fhem an das device gesendet, empfangene msgs aber dennoch verarbeitet. einfach mal probieren.

lest fhem eig. zuverlässig immer von links nach rechts? weil dann müsste ich ja nur den doelse umstellen auf:
([MK_Fliegengitter:state] eq "closed")
      (deleteattr WZ_Terrasse_Rollo dummy; set WZ_Terrasse_Rollo inhibit off; )

   DOELSE
      (set WZ_Terrasse_Rollo inhibit on; attr WZ_Terrasse_Rollo dummy 1; )
→do↑p!dnʇs↓shit←

frank

Zitatweil dann müsste ich ja nur den doelse umstellen auf:
das meinte ich ja. eventuell noch ein sleep zwischendrin, so dass notfalls auch noch wiederholungen gesendet werden können.
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

the ratman

das umstellen nutzt auch nichts.
beim 2. mal tippen am taster fährt das ding ...
→do↑p!dnʇs↓shit←

the ratman

ich hab jetzt mal ignore probiert - macht leider auch nur das selbe wie inhibit, also nur den taster lahm legen. ich kann dann immer noch per fhem befehle absetzen.

o.k. ich verzichte aufs lernen ... was muß ich machen, damit auch aus fhem keine befehle mehr abgesetzt werden können?
→do↑p!dnʇs↓shit←

martinp876

Eine cul kann immer aendern und befehle absetzen. Du kannst ein iodevices nutzen, das nicht sendet oder das es nicht gibt. Ändere das iodev oder iogrp auf nicht reale werde. Du wirst alles empfangen und nichts senden.
Wenn du wieder aktiv werden willst mache zuvor ein clear msgevents

the ratman

#14
es gibt also echt keinen einfachen/simplen befehl/attr/... um das device einfach ein/aus-zuschalten und dafür gleich mind. 2 attribute, um den hardware-schalter abzustellen?
würde sagen: da könnte echt mal ein progger ran ...
→do↑p!dnʇs↓shit←