Autor Thema: Eigene ESP8266 Raumsensoren  (Gelesen 16661 mal)

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20869
Antw:Eigene ESP8266 Raumsensoren
« Antwort #45 am: 04 Juli 2017, 23:15:03 »
@Shojo: stimmt da war noch etwas. diese diskussion hatten wir schon mal.wir müssen für die INIT nachricht eigentlich noch das device mit angeben.  da das ganze vom der usb version kommt schaut das KeyValue modul auch im io nach. die usb und die tcp version kann zwar auch mehrere sensoren pro verbindung haben, diese hängen aber normalerweise logisch zusammen so das ein einziges dictionary reicht. bei der udp version kommen aber komplett unterschiedliche sensoren über das gleiche io und jeder sensor braucht ein eigenes dictionary. da müssen wir vermutlich auch noch mal nachbessern.

mal sehen ob HCS den thread findet. ich mach ihn mal drauf aufmerksam.


die oben angesprochenen ergänzungen müssten dann auch im KVUDP modul ergänzt werden.


@habeIchVergessen: das proíbem mit dem rückwärts abfragen der config ist das sensor und fhem seite nicht mehr so schön entkoppelt sind. wenn der sensor einfach ein mal die DICTIONARY nachricht schickt ist die trennung viel sauberer.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline habeIchVergessen

  • Sr. Member
  • ****
  • Beiträge: 782
Antw:Eigene ESP8266 Raumsensoren
« Antwort #46 am: 05 Juli 2017, 00:07:19 »
Kann man machen. Sehe aber keinen großen Mehrwert.
Die Entkopplung ist immer noch gegeben, da die FHEM-Seite ja aktiv werden muss. Dafür wird eine IP benötigt, die aus der initialen Multicast-Nachricht extrahiert wird.

Aktuell kann nur die Chip-ID benutzt werden, um Software-/Netzwerkänderungen detektieren zu können.
Dies würde ich schon der "schlauen Seite" (FHEM) überlassen.

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3137
Antw:Eigene ESP8266 Raumsensoren
« Antwort #47 am: 05 Juli 2017, 08:38:48 »
ich mach ihn mal drauf aufmerksam.
Die Herrschaften haben geläutet?  ;D

Da es mir an Zeit mangelt, weil ich eh schon zu viele Projekte laufen habe und es irgendwie keinen großen Sinn macht, mich in etwas, das ich nicht habe und nicht brauche, reinzukämpfen, wäre es vermutlich am einfachsten, wenn jemand einen Patch erstellt.

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20869
Antw:Eigene ESP8266 Raumsensoren
« Antwort #48 am: 05 Juli 2017, 09:16:20 »
ich schau es mir ab sobald mein sensor für den öltank in betrieb geht.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline Shojo

  • Developer
  • Full Member
  • ****
  • Beiträge: 380
  • Wie, Was, Wo?
    • DER BASTELBUNKER / Meine kleinen Projekte…
Antw:Eigene ESP8266 Raumsensoren
« Antwort #49 am: 05 Juli 2017, 09:24:21 »
Ich muss mal schauen  wie ich Zeit finde, werde mich sonst mal in Perl einlesen...
Kann ja nun auch nicht schwerer als C# / C++ / Java sein...
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

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20869
Antw:Eigene ESP8266 Raumsensoren
« Antwort #50 am: 05 Juli 2017, 09:32:39 »
eigentlich muss man nur:
- sich das nachrichtenformat ausdenken so das es rückwärts kompatibel ist.
  die sensor id muss halt mit in die nachricht

- die regex im code zum erkennen der nachricht erweitern

- die INIT nachricht noch in die device internals stecken, nicht nur in die internals des IO
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline habeIchVergessen

  • Sr. Member
  • ****
  • Beiträge: 782
Antw:Eigene ESP8266 Raumsensoren
« Antwort #51 am: 05 Juli 2017, 09:55:55 »
bei der udp version kommen aber komplett unterschiedliche sensoren über das gleiche io und jeder sensor braucht ein eigenes dictionary. da müssen wir vermutlich auch noch mal nachbessern.
das hat HCS schon im KeyValueProtocol eingebaut.
Wenn das Attribut Mapping keine Daten enthält, dann wird versucht, das Internal <IODev>_Mapping zu lesen. Dies wird durch KVPUDP gesetzt.
Leider funktioniert dies nicht bei der ersten Nachricht und AutoCreate, da die Internals erst nach den Attributen geschrieben werden.
« Letzte Änderung: 05 Juli 2017, 09:57:29 von habeIchVergessen »

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20869
Antw:Eigene ESP8266 Raumsensoren
« Antwort #52 am: 05 Juli 2017, 10:55:19 »
ja. das hatten wir vorgesehen. das reicht aber für den udp fall noch nicht. da ein KVUDP device ja nachrichten von mehreren unterschiedlichen sensoren empfangen kann und diese auch unterschiedliche mappings haben kann. im usb und tcp fall gibt es pro IO nur nachrichten von einem sketch mit einem mapping.

die eigentlich saubere version wäre wenn es im udp fall eine dreistufige architektur gäbe. 1 KVUDP mit N devices mit M sensoren. das ist aber übertrieben.

deshalb die idee das KVUDP die INIT nachricht nicht ins IODev (also sich selber schreibt) sondern ans KVP device weiter gibt und diese dort in den internals abgelegt werden und dieses dann zuerst in den eigenen internals schaut und erst danach im IO.

das mit dem autocreate ist auch kein problem. man kann die nachricht die das autocreate triggers beim autocreate mit übergeben und beim anlegen des device mit verarbeiten. dann geht auch die erste nachricht nicht verloren.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline habeIchVergessen

  • Sr. Member
  • ****
  • Beiträge: 782
Antw:Eigene ESP8266 Raumsensoren
« Antwort #53 am: 05 Juli 2017, 11:02:24 »
KVPUDP übermittelt via addvals die IP und das Dictionary an jedes KeyValueProtocol-Device, für das Daten empfangen werden.
Sofern diese vorher per /config... gelesen wurden.

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20869
Antw:Eigene ESP8266 Raumsensoren
« Antwort #54 am: 05 Juli 2017, 11:07:28 »
ja. aber ich mag diesen config rückweg nicht :). INIT nachrichten die der sensor richtung fhem schickt sind besser entkoppelt.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline habeIchVergessen

  • Sr. Member
  • ****
  • Beiträge: 782
Antw:Eigene ESP8266 Raumsensoren
« Antwort #55 am: 05 Juli 2017, 11:09:42 »
dann geht auch die erste nachricht nicht verloren.
die erste Nachricht geht nicht verloren! die Readings sind einfach nicht gemappt und stehen da mit 1=ABC, 2=DEF drin.

ja. aber ich mag diesen config rückweg nicht :). INIT nachrichten die der sensor richtung fhem schickt sind besser entkoppelt.
was passiert, wenn FHEM neu startet und die Liste der bekannten NodeMCU's weg ist (IP ist noch nicht bekannt)?

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20869
Antw:Eigene ESP8266 Raumsensoren
« Antwort #56 am: 05 Juli 2017, 11:18:08 »
die erste nachricht geht beim autocreate immer verloren wenn man sie nicht extra behandelt.

die ip ist für den weg sensor -> fhem ja eigentlich nicht relevant. nach der ersten nachricht ist sie ja wieder bekannt.

mit der config abfrage ist aber der umgekehrte weg nicht abgedeckt. wenn der sensor neu startet (und vielleicht sogar eine neue ip bekommt) erfährt fhem davon nichts da config nur bei der ersten nachricht abgefragt. wenn der sketch nach dem starten eine init nachricht schickt kann man auf fhem seite darauf reagieren falls das neu starten nicht beabsichtig war.

FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline habeIchVergessen

  • Sr. Member
  • ****
  • Beiträge: 782
Antw:Eigene ESP8266 Raumsensoren
« Antwort #57 am: 05 Juli 2017, 11:27:08 »
dafür gibt es die Nachricht "REFRESH CONFIG REQUEST"
wenn der Sketch diese bei jedem WiFi-Connect sendet, dann ruft KVPUDP /config auf und aktualisiert die internen Caches.
Bei der Nachrichtenverarbeitung wird dann aus dem Cache an die Devices weitergereicht.
« Letzte Änderung: 05 Juli 2017, 11:46:28 von habeIchVergessen »

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20869
Antw:Eigene ESP8266 Raumsensoren
« Antwort #58 am: 05 Juli 2017, 11:59:43 »
aber warum der config umweg? der sketch  kann doch einfach direkt die relevanten daten senden.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline habeIchVergessen

  • Sr. Member
  • ****
  • Beiträge: 782
Antw:Eigene ESP8266 Raumsensoren
« Antwort #59 am: 05 Juli 2017, 12:05:14 »
wenn FHEM erstmalig von einem NodeMCU Daten empfängt, dann müssen die INIT-Daten ebenfalls transportiert werden.
Dafür gibt es das HTTP-GET auf /config.

 

decade-submarginal