Licht, Markisen und Steckdosen schalten mit ESP12f und MQTT

Begonnen von supernova1963, 25 August 2016, 19:02:34

Vorheriges Thema - Nächstes Thema

flurin

Zitat von: supernova1963 am 27 August 2016, 16:56:14
Vielen Dank allen für die Unterstützung.

Das Programm ist MS Visio - Professional.

Gernot

Danke!

supernova1963

#16
Für alle, die es noch interessiert, hier meine ersten Versuche der Umsetzung in Fhem:


#WittyCloudBoard für Terrassensteuerung
define MyBroker MQTT 192.168.1.5:1883
attr MyBroker group Witty Board
attr MyBroker room MQTT

# Easy ESP Software
define WittyBoard MQTT_DEVICE WittyBoard
attr WittyBoard IODev MyBroker
attr WittyBoard group Witty Board
attr WittyBoard icon it_net
attr WittyBoard publishSet_Lichtschalter /Terrassensteuerung/gpio/16
attr WittyBoard publishSet_MarkiseAuf /Terrassensteuerung/gpio/5
attr WittyBoard publishSet_MarkiseZu /Terrassensteuerung/gpio/4
attr WittyBoard publishSet_Stromschalter /Terrassensteuerung/gpio/14
attr WittyBoard room MQTT
attr WittyBoard stateFormat Licht: Helligkeit | Empfang: EmpfangWLAN DB | Online seit: ZeitOnline Min.
attr WittyBoard subscribeReading_EingangVolt /Terrassensteuerung/Eingang/Volt
attr WittyBoard subscribeReading_EmpfangWLAN /Terrassensteuerung/Empfang/WLAN
attr WittyBoard subscribeReading_Helligkeit /Terrassensteuerung/Helligkeit/Lux
attr WittyBoard subscribeReading_Lichtschalter /Terrassensteuerung/Relais-2_Licht/Schalter
attr WittyBoard subscribeReading_MarkiseAuf /Terrassensteuerung/Relais-3_Markise/Auf
attr WittyBoard subscribeReading_MarkiseZu /Terrassensteuerung/Relais-4_Markise/Zu
attr WittyBoard subscribeReading_Stromschalter /Terrassensteuerung/Relais-1_Strom/Schalter
attr WittyBoard subscribeReading_TasterLicht /Terrassensteuerung/Taster-1_Licht/Schalter
attr WittyBoard subscribeReading_TasterMarkiseAuf /Terrassensteuerung/Taster-2_Markise/Auf
attr WittyBoard subscribeReading_TasterMarkiseZu /Terrassensteuerung/Taster-3_Markise/Zu
attr WittyBoard subscribeReading_ZeitOnline /Terrassensteuerung/Zeit/Online
#attr WittyBoard publishSet_TasterLicht /Terrassensteuerung/gpio/15

define egTerrassenstrom dummy
attr egTerrassenstrom alias Terrasse Strom
attr egTerrassenstrom devStateIcon 1:Shutdown 0:Restart
attr egTerrassenstrom eventMap An:0 Aus:1
attr egTerrassenstrom group Terrasse,Witty Board
attr egTerrassenstrom icon control_outside_on_off
attr egTerrassenstrom room MQTT
attr egTerrassenstrom webCmd An:Aus

define egTerrassenstromSteuern DOIF ([egTerrassenstrom] eq '0') (set WittyBoard Stromschalter 0) \
DOELSE (set WittyBoard Stromschalter 1)
attr egTerrassenstromSteuern alias Terrasse Strom steuern
attr egTerrassenstromSteuern group Witty Board
attr egTerrassenstromSteuern room MQTT

define egTerrassenlicht dummy
attr egTerrassenlicht alias Terrasse Licht
attr egTerrassenlicht eventMap 0:An 1:Aus
attr egTerrassenlicht group Terrasse,Witty Board
attr egTerrassenlicht icon light_outdoor
attr egTerrassenlicht room MQTT
attr egTerrassenlicht webCmd An:Aus

define egTerrassenlichtSteuern DOIF ([egTerrassenlicht] eq 'An' and [TerrassensteuerungLux] < 50 and [egTerrassenstrom] eq 'An') (set WittyBoard Lichtschalter 1) \
DOELSEIF ([TerrassensteuerungTasterLicht] eq '0' and [TerrassensteuerungLux] < 50 and [egTerrassenstrom] eq 'An') (set WittyBoard Lichtschalter 1)\
DOELSE (set WittyBoard Lichtschalter 0, set egTerrassenlicht Aus)
attr egTerrassenlichtSteuern alias Terrasse Licht steuern
attr egTerrassenlichtSteuern do always
attr egTerrassenlichtSteuern group Witty Board
attr egTerrassenlichtSteuern room MQTT

define egMarkise dummy
attr egMarkise alias Terrasse Markise
attr egMarkise devStateIcon 0:fts_sunblind_10 1:fts_sunblind_90 9:fts_sunblind_50
attr egMarkise eventMap Zu:0 Auf:1 Stop:9
attr egMarkise group Terrasse,Witty Board
attr egMarkise icon awning
attr egMarkise room MQTT
attr egMarkise webCmd Zu:Auf:Stop

define egMarkiseSteuern DOIF ([egMarkise] eq '0' and [egTerrassenstrom] eq '0') (set WittyBoard MarkiseAuf 1,set WittyBoard MarkiseZu 0) \
DOELSEIF ([egMarkise] eq '1'and [egTerrassenstrom] eq '0') (set WittyBoard MarkiseZu 1,set WittyBoard MarkiseAuf 0) \
DOELSEIF ([egMarkise] eq '9'and [egTerrassenstrom] eq '0') (set WittyBoard MarkiseZu 1,set WittyBoard MarkiseAuf 1)\
DOELSEIF ([TerrassensteuerungTasterMarkiseAuf] eq '0' and [TerrassensteuerungTasterMarkiseZu] eq '1' and [egTerrassenstrom] eq '0') (set WittyBoard MarkiseAuf 1,set WittyBoard MarkiseZu 0)\
DOELSEIF ([TerrassensteuerungTasterMarkiseZu] eq '0' and [TerrassensteuerungTasterMarkiseAuf] eq '1' and [egTerrassenstrom] eq '0') (set WittyBoard MarkiseZu 1,set WittyBoard MarkiseAuf 0)\
DOELSEIF ([TerrassensteuerungTasterMarkiseZu] eq '1' and [TerrassensteuerungTasterMarkiseAuf] eq '1' and [egTerrassenstrom] eq '0') (set WittyBoard MarkiseZu 1,set WittyBoard MarkiseAuf 1)\
DOELSE (set egMarkise Zu)
attr egMarkiseSteuern alias Terrasse Markise steuern
attr egMarkiseSteuern do always
attr egMarkiseSteuern group Witty Board
attr egMarkiseSteuern room MQTT

define TerrassensteuerungLux readingsProxy WittyBoard:Helligkeit
attr TerrassensteuerungLux group Witty Board
attr TerrassensteuerungLux room MQTT

define TerrassensteuerungTasterLicht readingsProxy WittyBoard:TasterLicht
attr TerrassensteuerungTasterLicht group Witty Board
attr TerrassensteuerungTasterLicht room MQTT

define TerrassensteuerungTasterMarkiseAuf readingsProxy WittyBoard:TasterMarkiseAuf
attr TerrassensteuerungTasterMarkiseAuf group Witty Board
attr TerrassensteuerungTasterMarkiseAuf room MQTT

define TerrassensteuerungTasterMarkiseZu readingsProxy WittyBoard:TasterMarkiseZu
attr TerrassensteuerungTasterMarkiseZu group Witty Board
attr TerrassensteuerungTasterMarkiseZu room MQTT


Auch hier bin ich absoluter Neuling und für Hinweise auf Fehler und Anregungen bzw. Verbesserungsvorschläge sehr dankbar.
Zur Erläuterung der Eingaben in ESPEasy und der Anzeige in Fhem, habe ich die Screenshots angelegt.

Gernot

Edit 12:05: Ach, ich habe vergessen darauf hinzuweisen, dass ich den Taster für das Licht an GPIO02 angeschlossen habe. Außerdem hat sich der Stopp bei der Markisensteuerung bei der Verwendung von einem Markisentaser überflüssig ist. Das Loslassen einer der beiden Taster führt zum gleichen Ergebnis. Nachteil: Man muß den Taster für Auf oder Zu fahren festhalten bis zu Endabschaltung des Markisenmotors.

flurin

Hallo supernova1963

Zitat von: supernova1963 am 25 August 2016, 19:02:34
Das 1. Relais von oben, soll die gesamte Stromzufuhr zur Terrasse an- und ausschalten.

Was ist der Grund für diese Funktion?

Abgesehen von der Verriegelung bei Markisen-Motoren finde ich es besser, wenn die Logik mit Software gelöst wird und Inputs/Outputs direkt verdrahten werden.

Angenommen, du willst nur das Terassenlicht steuern aber die Steckdose nicht, dann muss du die Verdrahtung ändern.

Gruss
flurin

supernova1963

Hallo flurin,

das 1. Relais soll soll mir den Gang zum Sicherungskasten ersparen. Das ist auch einer der Gründe, weshalb ich den HLK-PM01 hier einsetze, anderenfalls hätte ich wahrscheinlich ein Steckernetzteil genommen.

Gernot

flurin

Zitat von: supernova1963 am 28 August 2016, 13:39:17
das 1. Relais soll soll mir den Gang zum Sicherungskasten ersparen.

Ich nehme an, dass du die Steuerung in einem Gehäuse einbaust und zwar vermutlich in der Nähe der Tasten (5V-Leitungen)  platzierst. Dann würde ich einen Hauptschalter am Gehäuse vorsehen und mich nicht auf ein Relais verlassen, das softwaremässig geschaltet wird.

supernova1963

Hallo flurin,

ich stimme dir zu, bis auf den Schalter am Gehäuse. Den möchte ich gerade nicht auf der Terrasse platzieren. Idealerweise gehört ein Solcher, - ich nenn ihn mal "Hauptschalter", in das Haus. Nur dafür müssen neue Kabel verlegt werden. Bis das soweit ist, sollte es, - mit der Einschränkung "Lieber noch mal nachsehen!" -, doch auch so gehen.

Gernot

supernova1963

Kleine Korrektur des DOIF egTerrassenlichtSteuern:


define egTerrassenlichtSteuern DOIF ([egTerrassenlicht] eq 'An' and [TerrassensteuerungLux] < 100 and [egTerrassenstrom] eq '0') (set WittyBoard Lichtschalter 0) \
DOELSEIF ([TerrassensteuerungTasterLicht] eq '0' and [TerrassensteuerungLux] < 100 and [egTerrassenstrom] eq '0') (set WittyBoard Lichtschalter 0)\
DOELSE (set WittyBoard Lichtschalter 1, set egTerrassenlicht 1)
attr egTerrassenlichtSteuern alias Terrasse Licht steuern
attr egTerrassenlichtSteuern do always
attr egTerrassenlichtSteuern group Witty Board
attr egTerrassenlichtSteuern room MQTT


Gernot

Franz Tenbrock

und
hast du es auch in der Realität so umgesetzt ?
Bei mir will ich 2 Markisen damitunabhängig steuern und noch etwasSzenelicht für die Terasse ( 2-3 LED Strahler )
Die stromzufuhr kann ich seit gestern aus dem Keller raus per HM schalten
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

supernova1963

ja, funktioniert immer noch.
Ich habe jedoch mittlerweile jeweils einen 10k Pullup Widerstand an die Leitungen zu den Tastern angelegt, da manchmal 2-mal gedrückt werden musste.

Gernot