(gelöst) Relais mit Notify schalten

Begonnen von Gerdi68, 26 November 2017, 13:42:55

Vorheriges Thema - Nächstes Thema

Gerdi68

Hallo,

ich bin mir nicht sicher ob meine Frage hier richtig ist oder ggf. in ein anderes Unterforum gehört.
Wenn dann bitte verschieben...

Trotzdem würde ich mich über Hilfe freuen :)


Folgendes Problem:

Ich habe einen NodeMCU mit ESP Easy Mega GIT version:   v2.0.0-dev12

eingebunden mit
Internals:
   CONNECTS   1690
   DEF        bridge 8383
   FD         11
   HOST       bridge
   IPV        4
   MAX_HTTP_SESSIONS 3
   MAX_QUEUE_SIZE 250
   NAME       espBridge
   NOTIFYDEV  global
   NR         26
   NTFY_ORDER 50-espBridge
   PORT       8383
   STATE      initialized
   SUBTYPE    bridge
   TYPE       ESPEasy
   VERSION    1.33
   READINGS:
     2017-11-25 08:38:58   state           initialized
   helper:
     pm:
       Encode     1
       JSON       1
     queue:
     sessions:
       192.168.178.130 0
Attributes:
   authentication 1
   combineDevices 0
   group      ESPEasy Bridge
   room       ESPEasy
   verbose    5


Läuft mit FHEM eigentlich auch (fast) problemlos
Latest Revision: 15496

File               Rev   Last Change

fhem.pl            15482 2017-11-23 10:07:05Z rudolfkoenig
98_autocreate.pm   15377 2017-11-01 16:59:23Z rudolfkoenig
98_cmdalias.pm     15161 2017-10-01 10:17:28Z rudolfkoenig
98_dummy.pm        12700 2016-12-02 16:49:42Z rudolfkoenig
34_ESPEasy.pm      14936 2017-08-21 04:12:53Z dev0
91_eventTypes.pm   14888 2017-08-13 12:07:12Z rudolfkoenig
# $Id: 00_FHEMduino.pm mdorenka $
01_FHEMWEB.pm      15328 2017-10-27 10:51:17Z rudolfkoenig
92_FileLog.pm      14888 2017-08-13 12:07:12Z rudolfkoenig
10_FRM.pm          15021 2017-09-06 19:48:55Z klausw
91_notify.pm       14888 2017-08-13 12:07:12Z rudolfkoenig
99_SUNRISE_EL.pm   14888 2017-08-13 12:07:12Z rudolfkoenig
98_telnet.pm       15006 2017-09-05 09:37:33Z rudolfkoenig
59_Twilight.pm     14039 2017-04-19 19:59:56Z orti-otto
98_update.pm       15377 2017-11-01 16:59:23Z rudolfkoenig
99_Utils.pm        13259 2017-01-28 17:39:39Z rudolfkoenig
98_version.pm      15140 2017-09-26 09:20:09Z markusbloch
59_Weather.pm      12559 2016-11-13 08:54:54Z borisneubert
98_weblink.pm      14888 2017-08-13 12:07:12Z rudolfkoenig

No Id found for Base.pm
Blocking.pm        15412 2017-11-09 14:34:29Z rudolfkoenig
Color.pm           11159 2016-03-30 16:08:06Z justme1968
No Id found for Constants.pm
DevIo.pm           14933 2017-08-20 14:21:58Z rudolfkoenig
GPUtils.pm          6653 2014-10-02 11:59:37Z ntruchsess
HttpUtils.pm       15434 2017-11-15 13:21:28Z rudolfkoenig
No Id found for Platform.pm
No Id found for Protocol.pm
RTypes.pm          10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm   12935 2017-01-02 19:51:46Z rudolfkoenig
TcpServerUtils.pm  14862 2017-08-07 15:16:03Z rudolfkoenig
YahooWeatherAPI.pm 12465 2016-10-29 09:01:31Z borisneubert

fhemweb.js                 15228 2017-10-10 17:34:56Z rudolfkoenig



Angeschlossen sind z.Zt. ein 18B20, der im eingestellten Intervall auf einen Wert liefert, welcher auch plausibel ist.

Ein SR501 PIR, der im Event-Monitor auch Ereignisse liefert, so wie sie auch zu erwarten sind.

Und ein Relais (low-activ).

Alle wurde per autocreate auch in FHEM übernommen. Auch das Relais (den Pin habe ich auf GND oder 3,3V gelegt damit das Gerät auch "sendet")

Ein Schalter
Internals:
   NAME       Schalter8
   NR         31
   STATE      off
   TYPE       dummy
   READINGS:
     2017-11-26 09:40:56   state           off
Attributes:
   room       test
   webCmd     on:off

schaltet über ein notify
defmod not_Lampe8 notify Schalter8 set ESPEasy_ESP_1_Relais8 $EVENT
attr not_Lampe8 room test

setstate not_Lampe8 2017-11-26 09:40:56
setstate not_Lampe8 2017-11-25 08:38:58 state active

das Relais
defmod ESPEasy_ESP_1_Relais8 ESPEasy 192.168.178.130 80 espBridge ESP_1_Relais8
attr ESPEasy_ESP_1_Relais8 IODev espBridge
attr ESPEasy_ESP_1_Relais8 Interval 300
attr ESPEasy_ESP_1_Relais8 eventMap /gpio 5 off:on/gpio 5 on:off
attr ESPEasy_ESP_1_Relais8 group ESPEasy Device
attr ESPEasy_ESP_1_Relais8 presenceCheck 1
attr ESPEasy_ESP_1_Relais8 readingSwitchText 1
attr ESPEasy_ESP_1_Relais8 room ESPEasy
attr ESPEasy_ESP_1_Relais8 setState 3
attr ESPEasy_ESP_1_Relais8 stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Relais8","")}
attr ESPEasy_ESP_1_Relais8 webCmd off:on

setstate ESPEasy_ESP_1_Relais8 on
setstate ESPEasy_ESP_1_Relais8 2017-11-26 13:02:52 Relais8 on
setstate ESPEasy_ESP_1_Relais8 2017-11-25 17:40:38 Switch on
setstate ESPEasy_ESP_1_Relais8 2017-11-26 12:59:00 presence present
setstate ESPEasy_ESP_1_Relais8 2017-11-26 13:02:52 state Rel: on

und die Lampe geht auch an und aus.

gpio 5 on:off, weil low-activ Relais.
Die Funktion: Inversed Logic in der Weboberfläche des ESP scheint dafür nicht geeignet zu sein.
Ist auch nicht das Thema. So wie hier funktioniert es wie gewollt.


Eigentlich soll aber der Bewegungsmelder das Licht schalten.
Dazu das notfiy als raw
defmod t1 notify ESPEasy_ESP_1_BM_8:on set ESPEasy_ESP_1_Relais8 on;; sleep 20;; set ESPEasy_ESP_1_Relais8 off
attr t1 room test

setstate t1 active
setstate t1 2017-11-25 18:29:08 state active

bzw list
Internals:
   CFGFN
   DEF        ESPEasy_ESP_1_BM_8:on set ESPEasy_ESP_1_Relais8 on; sleep 20; set ESPEasy_ESP_1_Relais8 off
   NAME       t1
   NOTIFYDEV  ESPEasy_ESP_1_BM_8
   NR         792
   NTFY_ORDER 50-t1
   REGEXP     ESPEasy_ESP_1_BM_8:on
   STATE      active
   TYPE       notify
   READINGS:
     2017-11-25 18:29:08   state           active
Attributes:
   room       test


Im Eventmonitor und im Log erscheint Relais8 nicht!
Meldungen zu BW8 hingegen erscheinen?!?

Gebe ich in FHEM oben in der Befehlszeile folgendes ein:
set ESPEasy_ESP_1_Relais8 on; sleep 20; set ESPEasy_ESP_1_Relais8 off
Dann geht das Licht an und nach 20 Sekunden aus.

Es werden Events erzeugt und das Logfile (verbose 5) zu gemüllt, ohne das Fehler auftauchen.

on-for-timer habe ich auch schon probiert.
Geht in der Befehlszeile, aber nicht im notify
Nicht wunder, longpulse ist im eventMap nicht mehr vorhanden. War es zur Zeit des Tests aber. Ging in der Befehlszeile ja auch.

Auch der Aufruf über {fhem("set ESPEasy_ESP_1_Relais8 on; sleep 20; set ESPEasy_ESP_1_Relais8 off")} (oder so ähnlich geschrieben. zumindest so, wie es in div. Beiträgen mit den Klammern stand ;)
erzeugt kein Event und kein Log-Eintrag. das Wort Relais8 taucht im Log nicht auf.


Ich bin mir sicher das der Fehler vorm Monitor sitzt, aber was genau ist falsch???


Benötigt Ihr noch weitere Angaben?


Vielen Dank an alle, die sich die Mühe machen sich hiermit auseinander zu setzen.



PS:
Ich lese hier schon lange und suche nach Lösungen bevor ich einen Beitrag eröffne.
Lese in einigen Beiträgen aber auch Hinweise wie "mal die Commanref lesen", "oder das Wiki"

Dazu kann ich folgendes sagen.
Auf Github gibt es oft nur eine Readme und in dieser mit viel Glück ein Link zu einen Wiki.
Man ist es nicht gewohnt so viele Informationen zu einer Software zu haben.
Grundsätzlich nicht schlimm! Aber die Informationen für FHEM sind auf so viele unterschiedliche Platformen verteilt.
Es gibt das Wiki, dann einen Sticky mit den ersten Schritten, ein Link zum Einsteiger-PDF, das Forum und die Commandref.
Die Commandref ist meiner Meinung nach die erste und beste Anlaufstelle.

Aber einige Module sind dort nur in englisch formuliert und beinhaltet dann Worte wie set und get (was sich vielleicht mit den Grundlagen noch erarbeiten lässt) und einigen anderen Fremdwörtern welche in den Grundlagen nicht beschrieben sind.
Neulinge, die einen durchschnittlichen IQ haben aber kaum Erfahrung mit Programmierung haben kaum eine Chance sich zurecht zu finden.
Und nur die Hilfestellung "steht im Commandref" hilft nicht jedem. Oft ist die Frage wie ein bestimmtes Reading verwendet werden muss. Und das dann nur auf englisch beschrieben mit vielen Fremdwörtern überfordert einen dann ggf.

Und das ist eigentlich schade, da FHEM grundsätzlich ein cooles Programm mit einer guten Community ist.
Schade nämlich, weil einigen dann relativ schnell die Lust vergeht sich mit dem Thema weiter zu beschäftigen.

Leider habe ich keine Lösung, wie man diese Situation verbessern könnte.
Das ganze soll eigentlich auch nur ein Hinweis sein, an wenige einzelne, sich auch mal in die Neulinge versetzen zu können.
Ich habe gerade 57 Seiten zu ESP ohne MQTT hinter mir in der Hoffnung die Lösung zu finden.
Dev0 hat dort oft angemerkt zusammen mit Usern, welche die Beschreibung nicht verstehen, die Commandref anzupassen. Ich denke das ist ein guter Weg.
Ich aus meiner Sicht kann da leider nicht helfen. Für mich sind die vielen Begriffe aus FHEM zusammen mit einer englischen Beschreibung zu verwirrend.

Auf der anderen Seite müssen die User sich auch mal bemühen und den Text wenigstens einmal komplett lesen und versuchen zu verstehen. Die Frage welcher IP bei Controller eingetragen werden muss ist nahezu selbsterklärend ;)

Danke an alle, die bei meinem Problem helfen können und ein noch größeres Danke an alle, die hier täglich versuchen alle Probleme zu lösen. Das ist aus eigener Erfahrung eine zeitintensive Tätigkeit und keine Selbstverständlichkeit.


Euch noch einen schönen Sonntag :)

Otto123

Hi,

kommt denn wirklich dieser Event?
ESPEasy_ESP_1_BM_8:on

Du sagst ja den Ausführungsteil hast Du getestet und der geht. Der sieht aus meiner Sicht auch in Ordnung aus.

Welche Events kommen wenn der BM getriggert wird?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Gerdi68

Vielen Dank Otto!!!

Der Value Name wird dem Event angefügt.
Bei rumspielen habe ich da etwas anderes in der ESP-Oberfläche eingetragen und deshalb gab es kein Event, welches tatsächlich diesen Namen hat  :-\

Ich lösche die Devices jetzt mal alle und fange bei Null an.


Da ist der Tipp, den Event-Monitor zum Anlegen von Funktionen zu nutzen bei mir auch wieder in den Vordergrund gerückt   :-[


Wenn es nachher auch so klappt setzt ich den Beitrag auf gelöst.


Vielen Dank nochmal  :)

Gerdi68

Vielen Dank.

Das schalten geht ohne suffix, welches der ESPMega erzeugt. Das Anfragen aber nicht.

Ist mir auch etwas peinlich, aber vielen Dank, ist somit gelöst.

pula

Hallo,

könntest Du bitte noch erläutern, was Du damit genau gemeint hast:
Zitatden Pin habe ich auf GND oder 3,3V gelegt damit das Gerät auch "sendet"

Klingt interessant, verstehe ich aber so nicht?!

Danke und cheers,

Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram