Neues Modul: ESPEasy [war: ESPEasy ohne MQTT]

Begonnen von dev0, 18 Juli 2016, 11:53:28

Vorheriges Thema - Nächstes Thema

Waldmensch

Ich würde gerne in einem Sonoff ein Dummy Device anlegen und diesem von FHEM aus den Wert 0 oder 1 zuweisen.
Hintergrund ist, ich habe einen Bewegungsmelder an den freien GPIO gehängt, der den Sonoff über eine Rule schalten soll. Der Dummy soll dabei berücksichtigt werden (Autarkmodus on/off sozusagen)
Wie kann ich das realisieren? Adhoc würde mit nur einfallen, statt dem Dummy einen Switch zu nehmen, diesen an einen freien GPIO zu binden und von FHEM aus über den gpio Befehl zu schalten. Geht es auch eleganter?


Gesendet von iPhone mit Tapatalk

Reinhart

genau für diesen Fall gibt es den Wall Switch von Arends, brauchst nur in der user_config.h aktivieren. Hier musst du nur den GPIO 14 mit dem Bewegungsmelder auf GND ziehen.

* Wall switch and HC-SR501
\*-------------------------------------------------------------------------------------------*/
  #define SWITCH_PIN           14           // GPIO 14 = Standard wall switch to Gnd (Sonoff_TH10A(16A), Sonoff SV)
  #define SWITCH_MODE          TOGGLE       // [SwitchMode] TOGGLE, FOLLOW, FOLLOW_INV, PUSHBUTTON or PUSHBUTTON_INV (the wall switch state)
  #define USE_WALL_SWITCH                   // Enable the use of a standard wall switch to control the relay


und in der sonoff.ino den gewünschten Modus auswählen.

#define SWITCH_MODE            TOGGLE       // TOGGLE, FOLLOW or FOLLOW_INV (the wall switch state)
das wars. Ich hahe noch 2 Sonoff Switch bestellt, die ich ebenfalls so betreiben möchte.
Der Vorteil, es geht auch ohne Fhem autark, wie ein gewöhnlicher Bewegungsmelder. Selbstverständlich kannst du das aber auch mit Rules in ESPEasy nachbilden, habe ich aber noch nicht versucht.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Spezialtrick

Kurze Frage in die Runde:

Lässt sich mit dem Modul auch ein WS2801 LED Stripe an einem ESP ansteuern? Mir würde es im Prinzip ausreichen, wenn alle LEDs in der selben Farbe leuchten würden.
FHEM - Debmatic - Zigbee2MQTT - Homekit

Billy

#618
Zitat von: Reinhart am 31 Dezember 2016, 16:12:51
genau für diesen Fall gibt es den Wall Switch von Arends, brauchst nur in der user_config.h aktivieren. Hier musst du nur den GPIO 14 mit dem Bewegungsmelder auf GND ziehen.

* Wall switch and HC-SR501
[/quote]


Das kann ich bestätigen, geht ja auf meine Idee zurück.
Siehe auch Bilder vom Einbau in normale Verteilerdose.
Sonoff habe ich einfach gekürzt.

Übrigens geht seit gestern auch der Blink Modus. Damit kann man im Alarmfall z.B. Alle Strahler rings ums Haus
im Alarmfall blinken lassen. ;D

Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

Waldmensch

#619
@Reinhart, @Billy: Ich glaube nicht, dass das so geht. Ich will die LEDs im Badschrank schon über FHEM Zeitsteuern. Dh. sie werden eingeschaltet über Helligkeitssensor und schalten 0:00 ab. Jetzt soll der Bewegungsmelder aktiv sein, d.h. wenn Papa um 1:00 noch ein Bier wegbringen muss, sollen die LED über den Bewegungsmelder angehen. Während der Regulären "an" Zeiten und wenn der Lichtsensor über 500 Lux meldet, will ich nicht, dass mir der Bewegungsmelder "reinpfuscht". Ich will also schon über FHEM volle Steuerungsgewalt haben, aber auch sagen können, das er autark arbeiten soll.

Mal noch ein ungewöhnliches Verhalten in einem DOIF

Folgendes wirft den Fehler, das Der Sonoff 4 das Kommando nicht kennt und zeigt mir supportete Kommandos an. Mit FS20 Geräten kann man das so machen
([ESPEasy_Helligkeit_collect:med] eq 0) (set ESPEasy_sonoff_4_Schalter,ESPEasy_sonoff_5_Schalter,OG.bz.DU.LED_regular off)
DOELSEIF ([ESPEasy_Helligkeit_collect:med] eq 1) (set ESPEasy_sonoff_4_Schalter,ESPEasy_sonoff_5_Schalter,OG.bz.DU.LED_regular on)
DOELSEIF ([05:30]) (set ESPEasy_sonoff_4_Schalter,ESPEasy_sonoff_5_Schalter,OG.bz.DU.LED_regular on)
DOELSEIF ([23:59]) (set ESPEasy_sonoff_4_Schalter,ESPEasy_sonoff_5_Schalter,OG.bz.DU.LED_regular off)


So, also wenn ich alle "set" einzeln schreibe, funktioniert es
([ESPEasy_Helligkeit_collect:med] eq 0) (set ESPEasy_sonoff_4_Schalter off, set ESPEasy_sonoff_5_Schalter off, set OG.bz.DU.LED_regular off)
DOELSEIF ([ESPEasy_Helligkeit_collect:med] eq 1) (set ESPEasy_sonoff_4_Schalter on, set ESPEasy_sonoff_5_Schalter on, set OG.bz.DU.LED_regular on)
DOELSEIF ([05:30]) (set ESPEasy_sonoff_4_Schalter on, set ESPEasy_sonoff_5_Schalter on, set OG.bz.DU.LED_regular on)
DOELSEIF ([23:59]) (set ESPEasy_sonoff_4_Schalter on, set ESPEasy_sonoff_5_Schalter off, set OG.bz.DU.LED_regular off)


Das heißt, das das on/off Kommando durchaus bekannt ist nur im kombinierten "set" nicht funktioniert. Ich weiß nicht ob das am Modul liegt oder grundsätzlich nicht bei eventMap Kommandos geht. Das on/off ist ja auf gpio 12 0/1 gemappt und nicht "nativ"

Das DOIF für den PIR im Bad sieht derzeit so aus, davon will ich aber weg, weil es bei jedem PIR Event abgearbeitet wird, rund um die Uhr. Ich will den PIR eigentlich gar nicht in FHEM sehen. Wenn er autark arbeiten würde, könnte ich das "SendData" abschalten
([ESPEasy_sonoff_5_Schalter:PIR] eq "on" and [OG.bz.DU.LED_regular:state] eq "off" and [ESPEasy_Helligkeit_collect:med] eq 0) (set ESPEasy_sonoff_5_Schalter longpulse 12 1 30)

Reinhart

ok, davon hast du aber vorher nichts geschrieben, das dies eine etwas komplexere Steuerung als nur ein Bewegungsmelder autark ist.

Wenn ich sehe, dass hier immer mehrere Sonoff gleichzeitig geschalten werden sollen, wäre das vielleicht eine Überlegung dies mit MQTT Group Topic zu steuern. Ein Group Befehl steuert dir alle darin befindlichen Sonoff mit dieser Topic gleichzeitig an. Das würde aber nur die "doelseif" vereinfachen und nicht das Problem "autark Steuerung" lösen.

Wenn ich dich richtig verstehe, dann hast du bereits ja alles gelöst nur willst es irgendwie einfacher machen, indem du die "autark" Lösung mit einbauen kannst?

Ich habe so eine ähnliche Aufgabenstellung wie du mit einem PIR der zu unterschiedlichen Zeiten unterschiedliche Lichtszenen auslösen soll und es noch verknüpft mit einem HM Taster und hier noch extra die "short" und "longpulse" auswerte. Ich habe einfach mehre If Bedingungen mit der Zeitverknüpfung aufgebaut. Das wird dann aber auch ähnlich wie dein Konstrukt und ist nicht einfacher und den PIR brauche ich in Fhem weil ich ihn ja zu bestimmten Zeiten eben bestimmte Handlungen ausführen lasse und er immer das Event erzeugt.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

#621
@Billy

versorgst du den PIR mit der VCC (3,3V) des Sonoff an der Pinleiste?

Könntest du mit deinem PIR und der Wall einen eigenen Thread machen, weil das sicher mehr interessiert und hier sonst unübersichtlich wird?

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Waldmensch

Bei mir reichen die 3,3 vom Seriellen Port. Man könnte aber auch den Regler vom PIR brücken. Der PIR arbeitet nur mit 3,3 und der Regler ist nur für 5V Kompatibilität drauf


Gesendet von iPhone mit Tapatalk

dev0

Zitat von: Spezialtrick am 31 Dezember 2016, 16:29:47
Lässt sich mit dem Modul auch ein WS2801 LED Stripe an einem ESP ansteuern? Mir würde es im Prinzip ausreichen, wenn alle LEDs in der selben Farbe leuchten würden.

Wenn Dein ESP mit ESPEasy die WS2801 Stripes steuern kann, dann unterstützt das Modul das auch (raw Befehl). Eine fertiges ESPEasy Plugin für WS2801 Stripes kenne ich nicht, für WS2811/WS2812 Stripes könntest Du auf dem Neopixel Plugin aufbauen.

dev0

@All: Bitte die Diskussionen ohne Bezug zum Thema dieses Threads einstellen.

Waldmensch

Ich habe das mal getestet, den freien GPIO14 auf einen Switch zu legen. Ein set sonoff gpio 14 1 schaltet zwar den gpio Pin auf dem ESP, allerdings zieht der Switch (Task) nicht mit und sein value wird nicht gesetzt. Warum funktioniert das bei gpio 12, was das Relay ist? Dort schicke ich doch auch nur den gpio Befehl hin und der an den gpio gebundene Task setzt seinen value.


Gesendet von iPhone mit Tapatalk

dev0

Was kann das ESPEasy Modul daran ändern? Werden Befehle nicht korrekt übertragen?

Waldmensch

Das weiß ich noch nicht. Ich denke nicht, da der gpio selbst ja gesetzt wird. Ist im command der Task mit enthalten? Bei mir heißen ja alle Task im Sonoff "Schalter", damit sie als ein Device auflaufen. Unterscheiden tuen sie sich nur im Value. Falls nicht nur der GPIO Sondern auch der Taskname mit übertragen wird, könnte ich mir vorstellen, das der Befehl im ersten passenden Task landet



Gesendet von iPhone mit Tapatalk

Waldmensch

Es ist in der Tat so, das man einem Task, den man mit einem gpio (mit-)setzen möchte, einen uniquen Namen geben muss. Dann legt die Bridge ein eigenes Device an und auf diesem muss man dann den gpio setzen.


Gesendet von iPhone mit Tapatalk

peterboeckmann

Hallo,

ich habe mir das ESPEasy-Modul gerade eingerichtet und einen Sonoff konfiguriert.

Es hat mich ein bisschen Aufwand gekostet, weil ich zunächst keine Readings erhalten habe. Daher wurde das Gerät auch immer als "absent" markiert.
Geholfen hat dann, dem Attribut pollGPIOs den Wert 12 zu geben.

Geschaltet hat das Gerät trotzdem schon. Aber der Status wurde nicht sofort aktualisiert. Dazu musste ich jedesmal ein statusRequest absetzen.
Daher habe ich in der 34_ESPEasy.pm, Zeile 541, noch einen Aufruf der Methode ESPEasy_statusRequest($hash); ergänzt.
Evtl. könnte der Autor des Moduls das noch ergänzen. Vielen Dank!

Für jeden,der ähnliche Probleme hat wie ich, hier nochmal meine Konfiguration dazu:


define SonoffNordterrasse ESPEasy 192.168.178.121 80 espBridge SonoffNordterrasse
attr SonoffNordterrasse IODev espBridge
attr SonoffNordterrasse devStateIcon devStateIcon on:FS20.on:off off:FS20.off:on absent:10px-kreis-rot:statusRequest .*:ios-NACK:statusRequest
attr SonoffNordterrasse eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/
attr SonoffNordterrasse group Schalten
attr SonoffNordterrasse pollGPIOs 12
attr SonoffNordterrasse room ESPEasy,Garten
attr SonoffNordterrasse setState 1
attr SonoffNordterrasse stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"GPIO12","")}