Eigene ESP8266 Raumsensoren

Begonnen von Shojo, 26 Juni 2017, 21:43:18

Vorheriges Thema - Nächstes Thema

Shojo

Hallo,

ich habe in meinen Räumlichkeiten diverse  (Eigenbau)Raumsensoren mit einen ESP8266 Herzen.
Die Sensoren waren für meine Selbstprogrammierte HomeControl , nun möchte ich die Sensoren für FHEM wiederverwerten.

Da die Sensoren im deep sleep gehen müssen diese aktiv zu FHEM senden.
Meine Überlegung war diese:

Push zum FHEM über WebCMD:
http://192.168.0.251:8083/fhem?cmd=setreading%20SKBB.RoomSensor_25146%20Temperature%2026.00;setreading%20SKBB.RoomSensor_25146%20Humidity%2062;setreading%20SKBB.RoomSensor_25146%20Battery%2085&XHR=1

Wenn der Sensor noch nicht angelegt ist bekomme ich ja das Result:
Please define SKBB.RoomSensor_25146 first
Please define SKBB.RoomSensor_25146 first
Please define SKBB.RoomSensor_25146 first


Darauf würde dann der Sensor folgt reagieren:
http://192.168.0.251:8083/fhem?cmd=define SKBB.RoomSensor_25146 dummy;define%20SKBB.RoomSensor_25146_FileLog%20FileLog%20./log/SKBB.RoomSensor_25146_FileLog_%Y.log%20SKBB.RoomSensor_25146&XHR=1

Macht das so Sinn oder mache ich hier totalen misst?

Gruß
Dennis

FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

Gizmo_the_great

Ich würde das ganze über ESPeasy realisieren.
Da werden die Devices automatisch angelegt, wenn erstmal eine ESPeasy-Bridge eingerichtet ist.

Bin aber gespannt was die anderen User so empfehlen.

Grüße Gizmo


Gesendet von iPhone mit Tapatalk Pro
FHEM unter Debian auf RK3188, Homebridge, Apple TV3, Wemos D1 mini mit ESPeasy als RF433MHz-Transmitter, Raumsensor und OLED, Wemos D1 als Klingelsensor per Pushnachricht inkl. Remoteklingel-Funktion, Heizungsregelung Brötje WGB S und ISR SSR C mit BSB_Lan

MadMax-FHEM

Hi Dennis,

warum legst du nicht den dummy, filelog etc. schon in fhem an?
Statt "als Reaktion" des Sensors?

Allerdings wirst du so wie der Aufruf aktuell lautet (in deinem Beispiel) wohl Probleme bzgl. csrfToken (FeatureLevel 5.8) bekommen...

Alternativen:

ESPEasy (wie bereits genannt)

Webserver auf dem ESP und dann per HTTPMOD abfragen (ist allerdings polling)

und bestimmt noch weitere Möglichkeiten...

Schon im Forum bzgl. ESP gesucht?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Shojo

Hi Joachim,
ja die "Reaktion" des Sensor  fände ich schon nett da sich so jeder selbst anlegt und ich den Code so auch einfach weitergeben kann und
csrfToken habe ich aktuell eh deaktiviert daher klappt das ;)

HTTPMOD fällt leider raus da ich den Sensor ja im deep sleep versetzte und der dann natürlich nicht erreichbar ist.

Ja ich habe auch schon nach ESP im Forum gesucht, aber dort steh leider schon fast zu viel drinnen....
Habe dort leider noch nichts aufschlussreiches gefunden.

Werde mir dann mal ESPEasy  ansehen.

Danke euch beiden für die Vorschlage!

Gruß
Dennis 




FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

MadMax-FHEM

Zitat von: Shojo am 26 Juni 2017, 23:33:45
ja die "Reaktion" des Sensor  fände ich schon nett da sich so jeder selbst anlegt und ich den Code so auch einfach weitergeben kann

Ja selbst anlegen hat was...
...aber als Reaktion wird schwer u.a. wg. dem Sleep...

Zitat von: Shojo am 26 Juni 2017, 23:33:45
csrfToken habe ich aktuell eh deaktiviert daher klappt das ;)

Über die Risiken bist du dir im Klaren!?


Zitat von: Shojo am 26 Juni 2017, 23:33:45
HTTPMOD fällt leider raus da ich den Sensor ja im deep sleep versetzte und der dann natürlich nicht erreichbar ist.

Ja, da hast du nat. recht...


Zitat von: Shojo am 26 Juni 2017, 23:33:45
Ja ich habe auch schon nach ESP im Forum gesucht, aber dort steh leider schon fast zu viel drinnen....
Habe dort leider noch nichts aufschlussreiches gefunden.

Werde mir dann mal ESPEasy  ansehen.

Jep, ist halt auch ein wahnsinnig vielseitiges Teil...
...das ist bestimmt eine gute Wahl!

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Shojo

Zitat von: MadMax-FHEM am 26 Juni 2017, 23:41:18
Ja selbst anlegen hat was...
...aber als Reaktion wird schwer u.a. wg. dem Sleep...
Habe es mal eben gebaut und es läuft ^^ der Sleep wird je dann nur aktiv wenn er eingerichtet ist ;)

Zitat von: MadMax-FHEM am 26 Juni 2017, 23:41:18
Über die Risiken bist du dir im Klaren!?

Ja ich denke schon, da mein FHEM nur aus dem Lokalem Netzwerk erreichbar ist (von extern nur via VPN) sollte es vertretbar sein.
Oder liege ich da falsch?

Gruß
Dennis
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

MadMax-FHEM

Zitat von: Shojo am 26 Juni 2017, 23:48:11
Ja ich denke schon, da mein FHEM nur aus dem Lokalem Netzwerk erreichbar ist (von extern nur via VPN) sollte es vertretbar sein.
Oder liege ich da falsch?

Jep da liegst du leider total falsch!

Siehe z.B.:

https://forum.fhem.de/index.php/topic,72493.msg641206.html#msg641206

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

supernova1963

Hallo Dennis,

alternativ könnte man meiner Ansicht nach noch MQTT für die beschriebene Situation in Erwägung ziehen.
Die MQTT Bridge hat in fhem zwar kein autocreate, ist aber in der nativen Variante Hardware unabhängig.


Gernot

Pf@nne

Ich würde auch eine neue Firmware mit MQTT-Unterstützung in Erwägung ziehen.
ESPEasy oder vielleicht etwas sebstgemachtes....

https://forum.fhem.de/index.php/topic,50238.0.html
Das hier ist noch in Arbeit, wird aber nach und nach erweitert.
https://forum.fhem.de/index.php/topic,50238.0.html

https://forum.fhem.de/index.php/topic,67303.msg647791.html#msg647791

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

Shojo

Zitat von: MadMax-FHEM am 26 Juni 2017, 23:58:26
Jep da liegst du leider total falsch!

Uiuiui so böse habe ich mal wieder nicht gedacht ....
Danke dir für den Hinweis, werde dann mal schnell meine Config überarbeiten!

Zitat von: supernova1963 am 27 Juni 2017, 05:48:27
alternativ könnte man meiner Ansicht nach noch MQTT für die beschriebene Situation in Erwägung ziehen.
Zitat von: Pf@nne am 27 Juni 2017, 06:02:03
Ich würde auch eine neue Firmware mit MQTT-Unterstützung in Erwägung ziehen.
ESPEasy oder vielleicht etwas sebstgemachtes...

Danke euch beiden für den Hinweis auf MQTT hatte bis jetzt mich noch nicht mit MQTT auseinandergesetzt, werde dieses aber schnell nachholen ;)

Gruß
Dennis

FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

dev0

Du kanst auch, mit eigenen Code auf dem ESP, das ESPEasy Bridge Modul verwenden. Wenn Du statt
Zitathttp://192.168.0.251:8083/fhem?cmd=setreading%20SKBB.RoomSensor_25146...
einen JSON String per HTTP POST, an die vorher eingerichtete FHEM ESPEasy Bridge sendest.

Der JSON String hat folgenden Aufbau:

{
"module": "ESPEasy",                      # darf nicht verändert werden
"version": "1.02",                        # dito.
"data": {
"ESP": {
"name": "TESTDEVICE",     # wird für autocreate benötigt
"unit": 1,                # sollte ein eideuter Werte pro ESP sein
"build": 140,             # min. 128
"sleep": 0                # 1 Wenn Sleepmode
},
"SENSOR": {
"0": {
"deviceName": "TESTDEV0",      # wird für autocreate benötigt
"valueName": "Temprature",     # Readingname
"type": 1,                     # Sensor Werte folgen
"value": "23.2"                # Reading Wert
},
"1": {
"deviceName": "TESTDEV1",
"valueName": "Humidity",
"type": 1,
"value": "0"
},
"2": {
"deviceName": "TESTDEV2",
"valueName": "Motion",
"type": 10,                       # type switch
"value": "0"                      # 0 oder 1 -> off/on in FHEM
}
}
}
}

Damit funktioniert dann auch autocreate, basic auth, access control lists, etc...

Du könntest dann auch Deinen ESP über das Modul steuern, wenn der ESP nicht im deep sleep ist und Du Dich an folgende Syntax hälst:

http://ESP-IP:80/control?cmd=<BEFEHL>[,PARAM1][,PARAM2][,PARAMn]

Der Aufruf dafür sähe in FHEM so aus:

set <ESP> raw BEFEHL PARAM1 PARAM2

dev0

Nachtrag: Wenn Dich das interessiert, dann findest Du Beispielcode dazu hier: https://github.com/ddtlabs/Dots/blob/master/fastled_http.ino#L274
Das Script verwendet für den Aufbau des JSON Strings die ArduinoJson Library: https://github.com/bblanchon/ArduinoJson , geht aber auch manuell.

Mit dem Script steuere ich eine Lampe mit 240 Leds (WS2812B, fastled Lib) über das ESPEasy Modul und lasse den Status über Lichtprogramme etc anzeigen.

Shojo

Oh,
das gefällt mir sehr!
Danke für den Tipp :)

PS:
Obwohl ich einige Programmier- und Projekt-Skills mitbringe braucht es seine Zeit sich ein Überblick im FHEM zu verschaffen.
Was halt viel kann, ist auch etwas komplexer ;)
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

justme1968

wenn du den code unter kontrolle hast ist auf das KeyValueProtokol modul mit dem udp receiver an.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

dev0

Zitat von: justme1968 am 27 Juni 2017, 09:49:34
KeyValueProtokol
Das universellere KeyValueProtokol ist bestimmt besser geeignet, als ein proprietäres Protokoll nachzubilden.
Gibt es denn mittlerweile ein kleines bischen Doku dazu? Ich hatte damals (und auch jetzt auf die Schnelle) nichts dazu gefunden, die Daten in FHEM anzunehmen.

In der Commandref steht zwar:
ZitatA generic module to receive key-value-pairs from an IODevice like JeeLink.
Aber ehrlich gesagt, hat mir das nicht gereicht...