Hi,
ich benutze FHEM bislang nur fuer meine Teichsteuerung. Da nun auch noch etwas mehr kommen soll, habe ich mich dazu entschieden den rasp ins Haus zu holen und den Teich und dann alles neues mit dementsprechenden ESP8266 Nodes zu Versorgen.
So, ich habe nun um meine Altlasten zu entledigen eine komplett neue Installation gemacht, da bisher alles nur direkt lief.
Nun habe ich drei Sachen.
1. die Steuerung von Relais per ESPEASY
1.1. Muss ich fuer jeden Relaiskontakt diesen zuerst auf dem ESP anlegen und dann im FHEM? Also doppelt? Oder reicht es nur einmal in FHEM zu machen? So habe ich es bis jetzt und es funktioniert auch.
1.2. Ich sehe momentan nicht den derzeitigen Schaltzustand des ESP's in der Konfig. Ist das so normal? Derzeitiger Schaltzustand via Steckdose on oder Off waere klasse.
1.3. Bei einer Stromausfall der nur die ESP's betrifft - holen die sich dann den korrekten Schaltzustand den sie haben sollten wieder? Also wenn ich sage um 12:00 einschalten. Stromausfall passiert um 13:00 Uhr. Schaelt er sich nach dem Strom bekommen wieder ein oder bleibt er aus bis zum naechsten mal einschalten aus FHEM?
1.4. Momentan nutze ich die GPIOs 16, 5, 4, 0, 14, 12, 13, 15 fuer eine 8Kanal Relaiskarte. Nach einem Reset erreiche ich aber das ESP Modul immer nicht mehr. Erst wenn ich die Relaiskarte entferne und wieder hinmache. Welche GPIO Ports sind denn fuer 8 Kanaele empfehlbar?
Dies ist meine derzeitige Kopiervorlage die ich mir aus Auszuegen vom Forum und dev0 zusammengeklaut habe:
define ESPEasy_ESPTeichRelais_1_ESPTeich230V_1 ESPEasy 192.168.5.122 80 ESPBridge ESPTeichRelais_1_ESPTeich230V_1
attr ESPEasy_ESPTeichRelais_1_ESPTeich230V_1 IODev ESPBridge
attr ESPEasy_ESPTeichRelais_1_ESPTeich230V_1 Interval 300
attr ESPEasy_ESPTeichRelais_1_ESPTeich230V_1 group ESPEasy Device
attr ESPEasy_ESPTeichRelais_1_ESPTeich230V_1 presenceCheck 1
attr ESPEasy_ESPTeichRelais_1_ESPTeich230V_1 readingSwitchText 1
attr ESPEasy_ESPTeichRelais_1_ESPTeich230V_1 room ESPEasy
attr ESPEasy_ESPTeichRelais_1_ESPTeich230V_1 setState 3
attr ESPEasy_ESPTeichRelais_1_ESPTeich230V_1 icon black_Steckdose.off
attr ESPEasy_ESPTeichRelais_1_ESPTeich230V_1 stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"switch","")}
attr ESPEasy_ESPTeichRelais_1_ESPTeich230V_1 eventMap /gpio 16 on:off/gpio 16 off:on/
So in Ordnung?
2. Sunrise zeug
2.1 Ich habe aus meiner alten Konfiguration den Sunrisetimer uebernommen mit Anzeige auf der Seite. Leider funktioniert das nicht mehr. Ich habe folgende Sachen in der fhem.cfg:
attr global longitude 9.XXXXXX
attr global latitude 48.XXXXXX
# define Sonnentimer Dummys
define sun_riseSet_timer at *00:05:00 { my $s = sunrise();; fhem("set Sonnenaufgang $s");; $s = sunset();; fhem("set Sonnenuntergang $s");; }
define Sonnenaufgang dummy
attr Sonnenaufgang room Sonnentimer
define Sonnenuntergang dummy
attr Sonnenuntergang room Sonnentimer
Nur leider zeigt er mir da nun nur noch Fragezeichen an und auf der Hauptseite bemaengelt er folgendes:
SecurityCheck:
attr global latitude 48.XXXXXX
Muss ich noch irgendwo etwas hinzufuegen?
Hi,
mal ein Anfang zu deinem Katalog:
Meine Notiz zu ESPEasy Schaltern (https://heinz-otto.blogspot.de/2017/07/einbindung-von-espeasy-schaltern-in-fhem.html)
Der Artikel (http://www.mikrocontroller-elektronik.de/esp12e-tutorial-einstieg-mit-dem-esp8266-modul/)hat mir immer geholfen mit der Auswahl der GPIO.
Von der Sache her kannst Du alle GPIOs nehmen, allerdings eben nicht alle "direkt".
Gruß Otto
Zur Formatierung von Code siehe Anhang ;)
Hi Otto,
Vielen Dank fuer deine Antwort. Dein Bild kam mir gleich bekannt vor, da ich deinen Blog schon desoefteren gut gebrauchen konnte.
Also Punkt 1.4 hat sich erledigt. Ich hatte schon damals, als ich alles direkt auf den RASP gemacht hatte, Problemchen mit den Relais. Ich stiess dann auf den Tipp mit einem Transistor und zwei Widerstaenden. Als ich dies dann nun auch beim ESP erledigt habe, klappt das auch mit dem schalten und dem reboot.
Was mich aber noch sehr irritiert ist der Punkt der Schalterabfrage. Ich habe den Teil den du in deinem Blog erlaeuterst ja bereits drin "attr ESPEasy_EDSPST1_SW1 stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Switch","")} ". Trotzdem zeigt der mir nicht den aktuellen Schaltzustand in Form der An/Aus Gluehbirne an. Er zeigt mir lediglich ein Absent an, wenn der Controller weg ist.
Sonnentimer hat sich auch erledigt. Da war ja mal was mit einem Tag warten...
Gruesse,
Sascha
Zitat von: deathworm am 24 April 2018, 13:54:52
Hi Otto,
Vielen Dank fuer deine Antwort. Dein Bild kam mir gleich bekannt vor, da ich deinen Blog schon desoefteren gut gebrauchen konnte.
Also Punkt 1.4 hat sich erledigt. Ich hatte schon damals, als ich alles direkt auf den RASP gemacht hatte, Problemchen mit den Relais. Ich stiess dann auf den Tipp mit einem Transistor und zwei Widerstaenden. Als ich dies dann nun auch beim ESP erledigt habe, klappt das auch mit dem schalten und dem reboot.
Was mich aber noch sehr irritiert ist der Punkt der Schalterabfrage. Ich habe den Teil den du in deinem Blog erlaeuterst ja bereits drin "attr ESPEasy_EDSPST1_SW1 stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Switch","")} ". Trotzdem zeigt der mir nicht den aktuellen Schaltzustand in Form der An/Aus Gluehbirne an. Er zeigt mir lediglich ein Absent an, wenn der Controller weg ist.
Sonnentimer hat sich auch erledigt. Da war ja mal was mit einem Tag warten...
Gruesse,
Sascha
hi,
warum braucht man das?
ESPEasy_EDSPST1_SW1 stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Switch","")} ".
ist bei mir ohne was vorhanden
gruss
Hallo deathworm,
poste mal ein
list ESPEasy_ESPTeichRelais_1_ESPTeich230V_1
@eisman Wenn man mehrere Werte pro Device empfängt, also mehrere Readings hat.
ZitatsetState
Summarize received values in state reading.
A positive number determines the number of characters used for abbreviated reading names. Only readings with an age less than interval will be considered. If your are not satisfied with format or behavior of setState then disable this attribute (set to 0) and use global attributes userReadings and/or stateFormat to get what you want.
Possible values: integer >=0
Default: 3 (enabled with 3 characters abbreviation)
Es gibt mehrere Methoden, einen dauerhaften State zu haben. Meine Methode damals war ein zusätzlich übertragener Wert rssi.
Gruß Otto
hi,
Dankeschön,
da kann ich das bei mir so lassen
gibt bei mir das wifi mit 30sec.
gruss
Internals:
DEF 192.168.5.122 80 ESPBridge ESPTeichRelais_1_ESPTeich230V_1
ESPBridge_MSGCNT 3
ESPBridge_TIME 2018-04-24 14:22:20
ESP_BUILD 147
ESP_SLEEP 0
ESP_UNIT 0
ESP_VERSION 9
HOST 192.168.5.122
IDENT ESPTeichRelais_1_ESPTeich230V_1
INTERVAL 300
IODev ESPBridge
LASTInputDev ESPBridge
MSGCNT 3
NAME ESPEasy_ESPTeichRelais_1_ESPTeich230V_1
NOTIFYDEV global
NR 41
NTFY_ORDER 50-ESPEasy_ESPTeichRelais_1_ESPTeich230V_1
PORT 80
STATE absent
SUBTYPE device
TYPE ESPEasy
VERSION 1.38
READINGS:
2018-04-24 14:22:20 Switch on
2018-04-24 14:21:10 dBm -50
2018-04-24 14:31:26 presence absent
2018-04-24 14:31:26 state absent
helper:
fpc 1524572483
pm:
Encode 1
JSON 1
Attributes:
IODev ESPBridge
Interval 300
devStateIcon on:on:off off:off:on absent:message_socket_off@red:on
eventMap /gpio 16 on:on/gpio 16 off:off/
group ESPEasy Device
icon black_Steckdose.off
presenceCheck 1
readingSwitchText 1
room ESPEasy
setState 3
stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"switch","")}
Das einzige was ich zwischenzeitlich noich zusaetzlich veraendert habe, sind die ICON's: devStateIcon on:on:off off:off:on absent:message_socket_off@red:on
... momentag zeigt er Absent an, weil ich ihn zum Test ausgeschaltet habe. Ich korrigier das gleich mal.
hi,
ich steuer auch realis über ESP (rollladen)
defmod nSzRolloDown notify RO03:on set ESPEasy_ESP33 pcfpulse 1 0 500
attr nSzRolloDown devStateStyle style="color:aliceblue;;font-weight:bold;;text-align:right;;"
attr nSzRolloDown room rollladen
läuft gut... und das andere mit gpio 1 0 (oder 1)
wileicht hilft das
gruss
Switch != switch
READINGS:
2018-04-24 14:22:20 Switch on
ReadingsVal($name,"switch","")}
wow, das war die Loesung fuer dieses Problem. DANKE! Waere ich selbst nie drauf gekommen.
SO, jetzt ist eig. alles von oben erledigt, bis auf das mit der Laengenangabe als Hinweis. Aber das soll mich nun nicht weiter stoeren.
Was aber grad dauerhaft in den Logs kommt:
2018.04.24 16:16:48 2: ESPEasy ESPBridge: Autocreate ESPEasy_ESPTeichRelais_1_ESPTeich230V_2 ESPEasy 192.168.5.122 80 ESPBridge ESPTeichRelais_1_ESPTeich230V_2
2018.04.24 16:16:48 1: ESPEasy ESPBridge: WARNING: an error occurred while creating device for ESPTeichRelais_1_ESPTeich230V_2: ESPEasy_ESPTeichRelais_1_ESPTeich230V_2 already defined, delete it first
Ich sehe aber in der FHEM.cfg keinen Unterschied zum ersten oder dritten etc. Eintrag. Auch auf dem esp sind diese devices nicht unterschiedlich. Irgendwie komisch?
Ich würde mich schon etwas wundern, wenn der Hinweis in der Warnung nicht wirken würde.
Moin,
ZitatSecurityCheck:
attr global latitude 48.XXXXXX
Zum Einen kannst Du ja mal dies setzen und schauen ob der Fehler wiederkommt.
attr global motd none
Zum Anderen müsstest Du überprüfen, ob sich im attr global latitude nicht irgendwelche Schreibfehler eingeschlichen haben.
Gruß Otto
Guten Morgen Otto,
daran hab ich als erstes gedacht. Aber Meldung kam trotzdem.
Habe aber nun wegen der ESPEASY Fehlermeldung alles von mir aus der CFG herausgeworfen. ESP ausgeschaltet. Alles per delete geloescht. Neu einlesen lassen und wieder editiert. Nun ist einerseits die latitude Meldung und die Device Meldung weg. Funktioniert hat die Längenangabe ja schon vorher. ALso Meldungstechnisch ist nun alles in Ordnung.
Ich kaempf grad nur noch etwas mit dem kleinen ESP herum. Ich muss ja bedenken, dass der auch mal Stromlos wird. Und beim booten hat der wohl immer mal wieder Probleme. Beim erneuten Stromlosmachen scheint das wieder zu funktionieren. Lediglich zieht er dann einige Relais an, obwohl er dies nicht so anzeigt. Ich sehe auch, dass die LED's am Relaisboard nicht so hell leuchten wie als diese normal beim betaetigen leuchten.
Ich habe nun schon einmal nach solch einer Raspberry USV geguckt. Die sollte ja fuer drei so ESP's gut ausreichen. Eventuell behelf ich mir damit.
Hast du derzeit son ESP mit mehreren Relais am laufen?
Hi,
nein ich habe keine Relais Boards laufen. Insofern sind die Bemerkungen reine Theorie und eventuell unvollständig.
GPIO0 darf beim booten nicht auf Low liegen
GPIO15 muss beim booten auf Low liegen
Was die restlichen Pins beim Start mit den Relaiseingängen machen kann ich nicht sagen.
Hast Du die Betriebsspannung mit Elkos gepuffert?
Gruß Otto
Hoi,
die GPIO's habe ich in der Konfig auf Default gelassen. Ich hab da zwar zum testen mal den ein oder anderen mal auf Low und High gesetzt, aber ohne positiven Erfolg. Darum ging alles wieder auf "Default" zurueck. SOmit sollte das wohl kein Problem sein.
Nicht gesondert. Meines Wissens nach ist das aber von Haus aus hier schon erledigt. Ich benutze die ESP8266 NODEMCU loLin V3.
https://images-na.ssl-images-amazon.com/images/I/81xBVFRZ7UL._SX679_.jpg (https://images-na.ssl-images-amazon.com/images/I/81xBVFRZ7UL._SX679_.jpg)
Ich dachte das ist die Sorglosversion?
Gut, das mit Stromversorgung ist damit sicher in Ordnung.
Aber Du verstehst das Problem mit den GPIO nicht. Dies sind beim Start alles Eingänge. Wenn Dein Anschluss vom Relaisboard GPIO0 beim Start erstmal nach Low zieht funktioniert der Start nicht.
Oder wenn GPIO15 nach High gezogen wird ...
So in etwa wird die Beschaltung deiner NODEMCU sein:
https://raw.githubusercontent.com/nodemcu/nodemcu-devkit/master/Documents/NODEMCU_DEVKIT_SCH.png
Du kannst zum Test mal einen Anschluss nach dem Anderen vom Board entfernen und schauen wann der Start problemlos läuft.
Gruß Otto