Sonoff Dual - Rückmeldung, aber wie?

Begonnen von Gisbert, 29 Mai 2017, 09:56:53

Vorheriges Thema - Nächstes Thema

Gisbert

Hallo,

ich nutze einen eigenen Sketch zur Rollladensteuerung auf einem Sonoff Dual, der im Wesentlichem auf diesem Beitrag beruht: https://blog.thesen.eu/funk-wlan-markisensteuerung-mit-esp8266-und-arduino/
Das Ganze läuft stabil seit einigen Monaten.

Mir fehlt allerdings eine Art von Rückmeldung, z.B. letzter ausgeführter Befehl, um zu verifizieren, dass der gesendete Befehl auch angekommen ist. Jetzt ist es so, dass die Rückmeldung in Fhem komplett fehlt.

Die Rollladensteuerung ist ein Arduino-Sketch. Derzeit ist ein Webserver integriert, der die gesendeten Befehle an einen Browser zurückschickt, falls man den Befehl aus einem Browser absendet. Die Steuerung funktioniert ohne Fhem, aber eine Integration​ in Fhem ist viel cooler.

Gibt es eine Möglichkeit, den letzten Befehl oder Zustand an Fhem zu übermitteln?
Geht das im Fall vom Sonoff Dual mit MQTT, wobei die 2 Relais nicht über GPIOs des ESP laufen, sondern seriell angesteuert werden?
Ich hatte auch schon an die Tasmota-Software gedacht, es erschien mir dann doch zu aufwändig, meine an sich funkionierende  Steuerung darauf umzustellen.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Gisbert

Hallo,

hat gar niemand eine Idee oder wenigstens einen klitze-kleinen Hinweis?
Bin für jeden Hinweis zur Ergreifung des ... äh... copy and paste-Fehler ... ;)

Was ich suche, ist ein Befehl in dem Arduino-Sketch, der einen vorgegebenen String (oder Zahl oder was-auch-immer) in ein Reading eines Fhem-Devices schreibt.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

rr725

hm....mach es doch indem du in dem sketch einen http request hinzufügst

Gisbert

#3
Hallo rr725,

danke für den 1. Hinweis.

Wie sieht denn ein http request im Arduino-Sketch aus?
Was ich habe, ist die IP-Adresse des Fhem-Servers (ist ein Raspi bei mir), den Devicenamen in Fhem, den Wert (oder String), den ich senden möchte.
Wie gebe ich das Reading an, in das die Meldung geschrieben werden soll?
Ich habe kurz nach "http request arduino" gegoogelt, aber ich verstehe leider noch überhaupt nicht, wie es gehen soll.

Ich bin für weitere Hinweise dankbar.
Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

rr725

ok- meine fhem Installation läuft ebenfalls auf einem raspi, was aber für einen http reqquest nicht relevant ist.

in deinem sketch müsste ähnliches eingefügt werden
Beispiel :

HTTPClient http; 
http.begin("http://user:passwort@xxx.xxx.xxx.xxx:8083/fhem?cmd.Fernseh=set%20Fernseher%20on&XHR=1");
int httpCode = http.GET();                                                                 
if (httpCode > 0) {
String payload = http.getString();   
Serial.println(payload);                   
http.end();   
}

Gisbert

Hallo rr725,

vielen Dank für dein konkretes Beispiel.
Ich nehme an, dass Fernseh=set%20Fernseher%20on der Text ist, der zu Fhem gesendet wird, richtig? Das was davor und dahinter steht, ist dann wahrscheinlich notwendig, um den Befehl abzusetzen.
xxx.xxx.xxx.xxx = IP-Adresse des Raspi
user:passwort = Fhemseitig passend zum Port 8083
Ist das so richtig?
Ich werde es sobald wie möglich testen und Rückmeldung geben.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

rr725


Blauhorn

Hallo Gisbert,

ich bin gerade dabei, etwas ähnliches zu machen mit den Sonoff Dual. Das soll einen Rolladen im Kinderzimmer steuern. Aber ich werde das mit EspEasy versuchen. Da müsste doch die Anbindung an FHEM viel einfacher gehen, als über einen eigenen Sketch!?
Was ist denn der Grund dafür, dass Du das so machst?

Die gegensätzliche Verschaltung des Rohmotors (also dass Kanal 1 ausschaltet, wenn Kanal 2 einschaltet und umgekehrt) will ich direkt über Rules im Web-IF des Sonoff vornehmen.
Mit dem Rollo-Modul s. hier https://forum.fhem.de/index.php/topic,47202.0.html kann ich das dann steuern.

Die Sonoffs sind derzeit im Versand, deswegen kann ich das noch nicht ausprobieren, aber ich bilde mir ein, dass das eine gute Lösung wird.

Gruß
Blauhorn
1xBananaPi; 1x FB7490; 1xCUL433; 1x CC2530+CC2591; OpenMiLight-Gateway; 1xHMUART; HM-LC-Sw4-DR; Sonoff* mit TASMOTA, LEDController; MySensors; zigbee2mqtt;

Pf@nne

#8
Moin,

ich nutze für die Steuerung des SSRs in der WattMeter-Steckdose eine MQTT-Kommunikation mit Befehl und Rückmeldung.
https://forum.fhem.de/index.php/topic,56958.0.html
https://github.com/Pfannex/ADE7953_Breakoutboard

FHEM:

# ---------------------------------------------------
# switch Relay
# FHEM:
# ---------------------------------------------------
define ADE_Relay MQTT_DEVICE
attr ADE_Relay IODev MQTT_Broker
attr ADE_Relay devStateIcon off:taster_ch_aus_rot:on on:taster_ch_an_gruen:off set_.*:taster_ch:on
attr ADE_Relay eventMap { dev=>{"is_on" => "on", "is_off" => "off"}, usr=>{"on"=>"set_on", "off"=>"set_off"} }
attr ADE_Relay group Relay
attr ADE_Relay publishSet set_on set_off ESP8266_1032096/Relay/set
attr ADE_Relay publishSet_getStatus ESP8266_1032096/Relay/getStatus
attr ADE_Relay retain 1
attr ADE_Relay room ADE7953
attr ADE_Relay stateFormat state
attr ADE_Relay subscribeReading_state ESP8266_1032096/Relay/state
attr ADE_Relay webCmd on:off


Der FHEM-Taster hat kleine Texte (EIN / AUS) im Button.
Diese Texte werden erst mit den Rückmeldungen gesetzt.

Im Device-Code wird dann mit dem Topic "on" das Relay eingeschaltet,
direkt nach dem Befehl für das Setzen des GPIOSs wird dann einfach ein "is_on" published.
Der setzt dann den Beschriftung im Button.

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Gisbert

Hallo Blauhorn,

die Gefahr, dass beide Relais gleichzeitig Strom ziehen ist bei ESPEasy vorhanden. Falls Du eine Lösung gefunden hast, um das sicher zu verhindern, dann um so besser.

Beim Sonoff Dual hängen die Relais nicht an GPIOs sondern werden seriell angesteuert. In ESPEasy dürfte das nicht umsetzbar sein, zumindest nicht wie sonst üblich bei den ESPs. Falls es doch gehen sollte, dann muss die Baudrate auf einen bestimmten Wert (19200 oder ähnlich) eingestellt sein.
Was gehen könnte oder eher wird, ist die Tasmota Software, aber die erschien mir zu schwierig.

Falls ich die Rückmeldung des Befehls vom Sonoff Dual in Fhem hinbekomme, dann habe ich wahrscheinlich die bessere Lösung. Wlan SSID/Password kann ich jetzt schon ändern. Was noch fehlen würde, wäre einen komplett neuen Sketch via OTA aufzuspielen.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Gisbert

Hallo Pf@nne,

vielen Dank für deinen Hinweis.
Für mich stellt sich aber die Frage, wie krieg das nur umgesetzt. Und dann noch, funktioniert so was auch mit einem Sonoff Dual? Die Relais werden seriell angesteuert nicht über GPIOs.

Wenn Du mir Hilfestellung bzw. Anleitung bei der Umsetzung mit MQTT gibst, dann würde ich mich gerne daran versuchen.
Soll ich dir meinen Sketch zusenden, kannst du in den MQTT implementieren?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Pf@nne

Zitat von: Gisbert am 01 Juni 2017, 19:32:23
Wenn Du mir Hilfestellung bzw. Anleitung bei der Umsetzung mit MQTT gibst, dann würde ich mich gerne daran versuchen.

Wie vertraut bist du denn mit Arduino/C++?
Wie viel Energie willst du da denn reinstecken?
Unterstützung sollte dann kein Problem sein....

Beginnen solltest du dann hiermit:
http://s6z.de/cms/index.php/homeautomation-homecontrol/hardwareplattformen/esp8266/113-mqtt-basic-esp8266-mqtt-example

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Gisbert

#12
Hallo Pf@nne,

Grundkenntnisse in Arduino wäre zu viel gesagt, aber ich kann mich einarbeiten.
Ich komme wahrscheinlich dieses Wochenende nicht mehr dazu, und nächste Woche bin ich unterwegs, da geht es nicht.
Wenn Du also in 1-2 Wochen noch keine Antwort von mir bekommen hast, heißt das nicht, dass ich kein Interesse habe, sondern noch keine Zeit dafür hatte.

Ich versuche aber auch noch den von rr725 vorgeschlagenen http request zu testen.
Falls der funktioniert, bzw. ich den in meinen Sketch eingebaut bekomme, dann würde ich den benutzen.
MQTT bietet mit Sicherheit viel mehr Möglichkeiten, allerdings sind die Hürden auch höher.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Pf@nne

Klar, mach das.....

MQTT ist im Grunde eher einfacher.....meiner Meinung nach.... ::)
FHEM auf: DS415+ (Master), Raspberry Pi 2

Per

Zitat von: Blauhorn am 01 Juni 2017, 15:31:08Die gegensätzliche Verschaltung des Rohmotors (also dass Kanal 1 ausschaltet, wenn Kanal 2 einschaltet und umgekehrt) will ich direkt über Rules im Web-IF des Sonoff vornehmen.
Davon würde ich dir dringend abraten! Die Variante mit den hintereinander geschalteten Kontakten hat sich nicht umsonst durchgesetzt, obwohl zwei einfache Schließer-Relais billiger wären.

Gisbert

Hallo rr725,

ich hab versucht nach deinen Vorgaben einen http request zu machen - hat leider nicht funktioniert.
Ich füge meinen Sketch an.
Kannst Du Vorschläge machen, wie der Sketch zu verändern wäre?
Ich versuche mich auch parallel an MQTT.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Gisbert

Hallo Pf@anne,

ich nehme den Versuch auf und beschäftige mich mit MQTT.
Ich hab mir die folgende Seite angeschaut: http://s6z.de/cms/index.php/homeautomation-homecontrol/hardwareplattformen/esp8266/113-mqtt-basic-esp8266-mqtt-example
Ich weiß allerdings nicht, was ich von dieser Seite mitnehmen kann für meinen Fall.
sudo apt-cache search mosquitto ergibt:
libmosquittopp-dev - MQTT version 3.1 client C++ library, development files
mosquitto - MQTT version 3.1/3.1.1 compatible message broker
mosquitto-dbg - debugging symbols for mosquitto binaries
python-mosquitto - MQTT version 3.1 Python client library
python3-mosquitto - MQTT version 3.1 Python 3 client library
libmosquitto-dev - MQTT version 3.1/3.1.1 client library, development files
libmosquitto1 - MQTT version 3.1/3.1.1 client library
libmosquitto1-dbg - debugging symbols for libmosquitto binaries
libmosquittopp1 - MQTT version 3.1/3.1.1 client C++ library
libmosquittopp1-dbg - debugging symbols for libmosquittopp binaries
mosquitto-clients - Mosquitto command line MQTT clients


Das überfordert mich leider auch:
Zitat
ich nutze für die Steuerung des SSRs in der WattMeter-Steckdose eine MQTT-Kommunikation mit Befehl und Rückmeldung.
https://forum.fhem.de/index.php/topic,56958.0.html
https://github.com/Pfannex/ADE7953_Breakoutboard

Den Sketch, den ich bisher nutze, hänge ich an.
Falls OTA mit MQTT auch ginge, wäre das geradezu genial. Dann bräuchte man das Teil nie wieder aus der Wand rauszureißen, nur weil das WLAN-Passwort (ist bereits integriert) oder irgend ein Parameter geändert werden soll. Kannst Du dir den Sktech mal anschauen und mir einen Tipp geben, wie ich weitermachen soll.

Vielen Dank
Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY