[Gelöst] setreading setstate Endschalter

Begonnen von miggun, 14 Dezember 2018, 21:51:28

Vorheriges Thema - Nächstes Thema

miggun

Ich komme gerade mal wiede rnicht weiter und weiß nicht wirklich warum.
Ich habe hier einen Intertechno ITS-2000, das Teil ist angelernt und macht, was es soll.
Jetzt möchtte ich damit den Status eines Gerätes ändern. In meinem Fall, ITS-2000 sendet on, Status des Gerätes wird auf zu gesetzt. ITS-2000 sendet off, Status vom Gerät wird auf "auf" gesetzt.

Habe versucht das mit 2 Notify zu lösen und mit setreading und setstate probiert. Bei setreading passiert gar nichts und bei setstate sehe ich den neuen Status erst, wenn ich die Ansicht aktualisiere.
Eigentlich möchte ich das aber sehen, sobald der Endschalter etwas macht, ohne das ich im Browser mit F5 aktualisieren muss.

defmod n_Hallentor_a notify Halle_End_zu:off setstate au_Hallentor on

defmod n_Hallentor_z notify Halle_End_zu:on setstate au_Hallentor off

Was mache ich falsch, bzw. was habe ich vergessen?
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

MadMax-FHEM

Was ist au_Hallentor für ein Gerät?

Was ist der Zweck für das Konstrukt?

Versuche mal

defmod n_Hallentor_a notify Halle_End_zu:off set au_Hallentor on

Du kannst das auch mit if/else (Perl) oder IF/ELSE (fhem) auch in ein Notify packen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

miggun

#2
au_Hallentor ist der Schalter (FS20) der den Antrieb ansteuert.

defmod n_Hallentor_a notify Halle_End_zu:off set au_Hallentor on
Wenn ich das mache fährt das Hallentor auf. :o

mich wundet, das setreading nicht funktioniert. Kann das sein, weil der ITS-2000 keine ReadingList hat? Kann ich da nicht künstlich eine erzeugen?
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

MadMax-FHEM

#3
Dann erläutere halt mal (in verständlicher Form) was du erreichen willst...

Und poste halt einfach (immer gleich) lists der betroffenen Geräte/Devices, dann muss man nicht rätselraten und nachbohren... ;)

Du kannst mittels setreading DeviceName ReadingName Wert in jedem Gerät/fhem Device ein Reading "künstlich erzeugen"...

EDIT: und ich habe auch noch kein Beispiel von dir mit setreading gesehen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

miggun

Der FS20 Schalter, der das Hallentor hoch und runter fährt:
Internals:
   BTN        01
   DEF        1111 01
   IODev      MapleCUN1
   LASTInputDev MapleCUN3
   MSGCNT     58
   MapleCUN1_MSGCNT 2
   MapleCUN1_RAWMSG 810b04xx0101a0011111010014
   MapleCUN1_RSSI -84.5
   MapleCUN1_TIME 2018-12-14 17:00:14
   MapleCUN3_MSGCNT 56
   MapleCUN3_RAWMSG 810b04xx0101a0011111010000
   MapleCUN3_RSSI -16.5
   MapleCUN3_TIME 2018-12-14 23:21:24
   NAME       au_Hallentor
   NR         22
   STATE      off
   TYPE       FS20
   XMIT       1111
   CODE:
     1          1111 01
   READINGS:
     2018-12-14 23:21:24   state           off
Attributes:
   IODev      MapleCUN1
   devStateIcon on:fts_shutter_10@red off:fts_shutter_100@green
   event-on-update-reading .*
   genericDeviceType GarageDoorOpener
   icon       fts_garage
   room       FS20,Homekit
   siriName   Hallentor


Der ITS-2000, dieser soll den Satus setzen, Hallentor zu oder nicht:
Internals:
   CFGFN     
   DEF        01101111100010101011000110 0 0000
   IODev      MapleCUN2
   LASTInputDev MapleCUN2
   MSGCNT     55
   MapleCUN2_MSGCNT 55
   MapleCUN2_RAWMSG i69aa95999a569555
   MapleCUN2_RSSI -72.5
   MapleCUN2_TIME 2018-12-14 22:42:06
   NAME       Halle_End_zu
   NR         100
   STATE      on
   TYPE       IT
   XMIT       0110111110001010101100011000000
   XMITdimdown 00
   XMITdimup  00
   XMIToff    0
   XMITon     1
   CODE:
     1          0110111110001010101100011000000
   READINGS:
     2018-12-14 16:15:04   group           0
     2018-12-14 16:15:04   protocol        V3
     2018-12-14 23:04:24   state           on
     2018-12-14 16:15:04   unit            0000
Attributes:
   IODev      MapleCUN2
   room       IT


Ich möchte jetzt ein Element haben, Dummy oder original Device, wo ich über on, off das Hallentor auf und zu fahren kann. Der Status soll aber durch den Endschalter gesetzt werden und nicht durch das auslösen des Befehls verändert werden.
Ich habe es gerade mit drei Notifys probiert. Einer soll Stauts auf setzen, einer Status zu setzen und der dritte für den Befehl. Damit war ich auch nicht erfolgreich. Status ändert sich durch den Befehl.
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

MadMax-FHEM

Ich hab's immer noch nicht verstanden, sorry...

Also wo drückst du drauf?
Echter Schalter oder irgendwo in fhem oder beides.

Was passiert dann?
Fährt ein Motor auf/zu!?
Dieser ist hier ja dann nicht von Interesse!?

Der Endschalter ist ein echter Endschalter oder was?
Der sollte doch dann den Status kennen/haben!?

Wozu dann noch den Zustand des Endschalters anlegen/eintragen irgendwo hinschreiben?

Wäre auch hilfreich zu posten was du so versuchst/versucht hast und nicht nur zu schreiben: habe es nun mit 3 Notify probiert und geht auch nicht...

Und das/die Notify mit setreading hab ich auch immer noch nicht gesehen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

KernSani

Ich weiß nicht, ob ich das jetzt richtig verstanden habe, aber zwei Worte zur Erläuterung (mein Verständnis - bitte korrigieren, wenn falsch)
set:  ändert den Status und triggert ein Event
setstate: Ändert den Status und triggert kein Event
FHEMWEB reagiert auf Events, d.h. z.B. die Darstellung eines Icons andert sich in FHEMWEB (ohne irgendwo zu klicken) nur, wenn ein Event ausgelöst wird. Ein Event auslösen, ohne etwas zu ändern, könnte über trigger funktionieren. Ich habe das gerade Mal ausprobiert, "setstate XY off" zeigt XY weiterhin als "on" an und es passiert nix (Lampe leuchtet). Nach "trigger XY" wird XY als "off" angezeigt und die Lampe leuchtet immernoch...   
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

miggun

Alles über FHEM. Echte Schalter sind zwar da, aber erst mal soll es nur über Fhem laufen.
Wobei... Der Status sich natürlich auch ändern soll, wenn ich den realen Schalter betätige. das ist der Hautgrund für den Endschalter. Das ich halt sehe, ob das Tor wirklich zu ist.
Es ist ein 2 Kanal-Schalter. Also ein Schalter für hoch, ein zweiter Schalter für runter.
Der Endschalter ist ein realer Endschalter. Das das Funksignal ja nicht immer durch kommt, soll er mir melden, ob das Tor tatsächlich zu ist und den Zu-Befehl empfangen und ausgeführt hat, also das Tor wirklich zu ist.

Ziel ist es, das ich eine Spalte habe, in welcher der reale Status vom Endschalter angezeigt wird, rechts daneben die Buttons on und off. Aber auf die darf der Status nicht reagieren. Der soll lediglich auf den Endschalter hören.

Habe es jetzt mit diesem Dummy versucht. ON/OFF beim Icon extra groß, damit er nicht auf webcmd gört...funktioniert leider nicht.
defmod Hallentor dummy
attr Hallentor devStateIcon ON:fts_shutter_10@red OFF:fts_shutter_100@green
attr Hallentor icon fts_garage
attr Hallentor webCmd on:off


Das sind die 3 Notifys, die ich wahlweise mit setreading oder setstate ausrüste.
defmod n_Hallentor_a notify Halle_End_zu:off setstate au_Hallentor on;; setstate Hallentor ON

defmod n_Hallentor_z notify Halle_End_zu:on setstate au_Hallentor off;; setstate Hallentor OFF

defmod n_Hallentor_a_z notify Hallentor set au_Hallentor $EVENT
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

miggun

Zitat von: KernSani am 14 Dezember 2018, 23:47:48
Ich weiß nicht, ob ich das jetzt richtig verstanden habe, aber zwei Worte zur Erläuterung (mein Verständnis - bitte korrigieren, wenn falsch)
set:  ändert den Status und triggert ein Event
setstate: Ändert den Status und triggert kein Event
FHEMWEB reagiert auf Events, d.h. z.B. die Darstellung eines Icons andert sich in FHEMWEB (ohne irgendwo zu klicken) nur, wenn ein Event ausgelöst wird. Ein Event auslösen, ohne etwas zu ändern, könnte über trigger funktionieren. Ich habe das gerade Mal ausprobiert, "setstate XY off" zeigt XY weiterhin als "on" an und es passiert nix (Lampe leuchtet). Nach "trigger XY" wird XY als "off" angezeigt und die Lampe leuchtet immernoch...   

Ui, das muss ich mal probieren.
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

MadMax-FHEM

setreading sollte aber gehen...
...das versuchte und nicht funktionierende Beispiel hab ich halt noch nicht gesehen...

Und irgendwie soll ja ein Status gezeigt werden ohne dass was passieren soll!?

Weil fahren soll das Tor ja irgendwie auch nicht...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

miggun

defmod n_Hallentor_a notify Halle_End_zu:off setstate au_Hallentor on;; trigger Hallentor on
defmod n_Hallentor_z notify Halle_End_zu:on setstate au_Hallentor off;; trigger Hallentor off

Wenn ich trigger richtig eingebaut habe, dann funktioniert das leider auch nicht.

Das Problem bei setstate ist, das er den Status tatsächlich ändert, aber ich muss dafür die Seite neu laden. Bei geräten die ihren status senden, sehe ich die Veränderung ja, ohne F5 zu drücken oder andere aktualisierung.
Die beiden funktionieren nur mit Aktualisierung der Website
defmod n_Hallentor_z notify Halle_End_zu:on setstate au_Hallentor off
defmod n_Hallentor_a notify Halle_End_zu:off setstate au_Hallentor on

Die funktionieren gar nicht
defmod n_Hallentor_z notify Halle_End_zu:on setsreading au_Hallentor off
defmod n_Hallentor_a notify Halle_End_zu:off setreading au_Hallentor on
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20

KernSani

In meinem Test habe ich trigger ohne "on" oder "off" verwendet...

Nur nochmal zu meinem Verständnis: Aus irgendeinem Grund ist das Hallentor in FHEM nicht in dem Zustand, indem es wirklich ist, daher möchtest du über die Fernbedienung den richtigen Status setzen und dieser soll unmittelbar im UI geändert werden, richtig?

Bau dir einen Dummy - ein notify auf den realen Schalter mit set myDummy $EVENT, ebenfalls ein notify auf die Fernbedienung mit set myDummy $EVENT. Damit sollte der Dummy immer den gewünschten Zustand anzeigen (ohne irgendwas zu tun).


RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

MadMax-FHEM

#12
Weil setreading (wie geschrieben) ja auch anders funktioniert und eben ein Reading setzt:

setreading DeviceName ReadingName Wert

Was du willst wird verm. (so) nicht gehen.
Weil eine Änderung ohne Event eben nicht aktualisiert und eine mit Event eben den Aktor betätigt...

Aber ich verstehe immer noch nicht was das soll...

Du schaltest den Schalter (fhem Oberfläche oder tatsächlicher Schalter).

Motor fährt...

Wenn zu bzw. auf dann steht doch der tatsächliche Zustand im Endschalter bzw. ist halt wohl einer der beiden Endschalter zu, der andere auf daraus leitet sich dann doch ab, ob zu oder auf ist!?

Wenn das das Problem ist, dann ein Notify auf den einen Endschalter und dann einen Dummy auf "auf/offen" setzen und bei einem Notify auf den anderen Endschalter eben den Dummy auf "zu/geschlossen" setzen...

Beim Setzen des Dummy passiert auch nichts, also kein Motor an etc. aber es wird die Ansicht aktualisiert...

D.h. der Dummy zeigt an, ob auf oder zu ist und du drückst für auf bzw. zu machen halt den Schalter (fhem Knopf oder tatsächlich)...

Wenn es das auch nicht ist, dann weiß ich (immer noch) nicht was du (genau) willst bzw. wo das (eigentliche) Problem liegt...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

amenomade

Wenn ich richtig vestanden habe:
setreading au_Hallentor realState erstmal_unbekannt
attr au_Hallentor stateFormat realState
defmod n_Hallentor_a notify Halle_End_zu:off setreading au_Hallentor realState on
defmod n_Hallentor_z notify Halle_End_zu:on setreading au_Hallentor realState off
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

miggun

Zitat von: amenomade am 15 Dezember 2018, 01:15:41
Wenn ich richtig vestanden habe:
setreading au_Hallentor realState erstmal_unbekannt
attr au_Hallentor stateFormat realState
defmod n_Hallentor_a notify Halle_End_zu:off setreading au_Hallentor realState on
defmod n_Hallentor_z notify Halle_End_zu:on setreading au_Hallentor realState off


Wow, genial. Vielen, vielen Dank.
Das war es, was ich gebraucht habe.
Klasse. Freu mir gerade ien Ohr ab. :)
Raspberry Pi 3 B+
MapleCUN
Shelly1, Shelly2, Shelly4pro, FS20