Integration von MySensors in FHEM geplant?

Begonnen von fh555, 06 September 2014, 00:40:58

Vorheriges Thema - Nächstes Thema

kleinerDrache

@Hauswart
Ich meine den Namen den ein neuer Sensor beim anlegen von FHEM erhält. Im Normalfall MYSENSORS_ID , besser fände ich z.B. Sketchname+Version+ID wird ja von MySensors mitgesendet. Ab 10 Sensoren ist es etwas schwierig sich noch zu merken welcher Sensor welcher ist *gg*.

@Markus80
Sollte eigentlich nicht passieren. Ich weis allerdings nicht ob das Gateway eine "Hearbeat" Message sendet bei meinem ist ein Sensor (BMP280) mit verbaut der das übernimmt.
Raspi 2 - Hmusb2 , 2xJeeLink , EnOcean pi: Serie14 Geräte , 6xHM-Sec-Rhs , 6xHM-CC-RT-DN, verschiedene MySensor Nodes, ein bischen MQTT

Beta-User

Zitat von: kleinerDrache am 08 November 2016, 11:14:46
@Hauswart
Ich meine den Namen den ein neuer Sensor beim anlegen von FHEM erhält. Im Normalfall MYSENSORS_ID , besser fände ich z.B. Sketchname+Version+ID wird ja von MySensors mitgesendet. Ab 10 Sensoren ist es etwas schwierig sich noch zu merken welcher Sensor welcher ist *gg*.
Alias vergeben? Für einzelne Readings auch Readingsproxy in Erwägung ziehen?
Zitat von: kleinerDrache am 08 November 2016, 00:31:28
sobald ich alles fertig habe gerne. im Moment hapert es noch an ein zwei stellen. Gerade das mit dem OTA klemmt weil TEK die Sources zum Bootloader noch nicht rausrückt  D;
Warum tust Du Dich nicht mit Hexenmeister zusammen? M.E. gehört er zu den wirklichen MySensors-Heroes und hat dazu noch Ahnung vom ESP, die Aussichten wären also gut, dass ihr da zusammen was ans Laufen bringt! Evtl. ist es dann auch leichter TEK (tekka?) zu überzeugen, dass er sich in die Karten sehen läßt...
Zitat von: kleinerDrache am 07 November 2016, 22:55:21
Der Wiki-Artikel ist soweit in Ordnung aber ne Überarbeitung und Erweiterung (Thema OTA) können aber nie schaden denke ich.
Deinen OTA-Beitrag habe ich vorhin noch in meine Stichwortsammlung übernommen, als Wiki und Einführung für Newbies taugt es eher nicht und wäre auch auf 2.0.0 (final) anzupassen. Habe aber einen Editor-Zugriff bei ph1959 beantragt, vielleicht kann dann jemand die Infos zu ESP beisteuern?

Zitat von: kleinerDrache am 07 November 2016, 22:55:21
... die Nodes brauchen seit V. 2.0.0 eine Verbindung zum GW... Die Registrierung am GW ?
Ja, bevor die presentation()-Routine nicht durch ist (=Registrierung beim GW), startet die loop() nicht.

Gruß,

Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Markus80

@kleinerdrache
Ist ein Luftdrucksensor richtig?

Gesendet von meinem C6903 mit Tapatalk


kleinerDrache

Der BMP280 ist ein kombinierter Luftdruck/Temperatur Sensor gibt noch den BME280 der hat zusätzlich noch Feuchtigkeit (sollte man bevorzugen hatte aber noch nen BMP rumliegen)

@Beta-User
Schon klar mit Alias oder sogar umbenennen aber warum son Aufwand wenn es auch per Autocreate gehen könnte ? Die passenden Daten sind ja da. Muss man dann eh nochmal anpassen wenn man z.B. mehrere Bewegungsmelder gebaut hat (Wohnzimmer/Küche......) aber man könnte wenigstens grob unterscheiden: Hab ich da jetzt nen Bewegungsmelder oder iss das ein Thermometer.
Raspi 2 - Hmusb2 , 2xJeeLink , EnOcean pi: Serie14 Geräte , 6xHM-Sec-Rhs , 6xHM-CC-RT-DN, verschiedene MySensor Nodes, ein bischen MQTT

Markus80

Danke für die schnelle Info :-)

Gibt es einen fertigen Sketch dafür?

Gesendet von meinem C6903 mit Tapatalk


Feuerpfeil

Hallöchen,

ich muss sagen, dass für mich das Thema MySensors auch noch äußerst undurchsichtig ist.
Mich wundert es auch, dass hier nicht "so viel" darüber zu lesen ist, bzw. es nur wenige Themen gibt.
Mich persönlich verunsichert das etwas, sodass ich mich schon fast gar nicht "traue" zu fragen, weil ich denke,
dass MySensors wohl so selbsterklärend oder selbstverständlich ist. Da komme ich mir so "dumm" vor  :D

Auch wenn ich ganz gute englisch Kenntnisse habe, tue ich mich schwer damit, mich durch die MySensors Homepage zu wurschteln.
Vielleicht lese ich auch nur zu oberflächlich.
Einige zusammenhängende Dinge scheinen irgendwie verstreut und auch die Beispiel Sketche auf der Homepage unterscheiden sich von denen auf Github. Teilweise haben sie auch unterschiedliche andere Dateinamen.

Ich finde es jedenfalls echt prima, dass ihr euch der Sache hier annehmt und hier immer gute Hilfestellungen leistet !!!   ;)

Viele Grüße,
Lars

Omega

@kleinerDrache
Ich vermisse bei meinen Gateways auch die Möglichkeit einer Heartbeat-Funktionalität. Was für ein Sensor dranhängt, ist mir eigentlich egal - Hauptsache, dass GW spricht regelmäßig. Allerdings ist es mir nicht gelungen, einen Sketch erfolgreich aufzubauen.

Magst du bitte mal deinen Sketch posten (wenn möglich bei einem WLAN-GW), bitte auch in Verbindung mit welchen Bibliotheken. Nur dann kann man ja einigermaßen sicher sein, auch zu einem funktionierenden Exemplar zu kommen.

Danke
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Beta-User

Zitat von: kleinerDrache am 08 November 2016, 12:41:29
Schon klar mit Alias oder sogar umbenennen aber warum son Aufwand wenn es auch per Autocreate gehen könnte ? Die passenden Daten sind ja da. Muss man dann eh nochmal anpassen wenn man z.B. mehrere Bewegungsmelder gebaut hat (Wohnzimmer/Küche......) aber man könnte wenigstens grob unterscheiden: Hab ich da jetzt nen Bewegungsmelder oder iss das ein Thermometer.
Na ja, die readings der Nodes sprechen ja auch eine klare Sprache, sobald sie angelegt sind.
Ich finde es eigentlich ganz angenehm, dass die Erstbenamsung nur nummerisch ist, dann kann ich auch nach dem aliasen im Browser leichter per Befehlszeile durchwechseln, der "Bandwurm" vorneweg wäre da hinderlich. Den Rest erledige ich eh' per "attr room xxx" und versuche, möglichst nur eine Node pro Zimmer zu haben (Kombisensoren) 8).

Zitat von: Markus80 am 08 November 2016, 12:50:22
Gibt es einen fertigen Sketch dafür?
In den MySensors-Sourcen ist derzeit nur der BMP180 drin, aber vermutlich gibt es auch eine Arduino-lib für den BPE280, der Rest ist dann einfach eine Kombination aus BMP180-MySensors-Sketch, DHT11-MySensors-Sketch und der neuen lib...

Zitat von: Feuerpfeil am 08 November 2016, 12:50:45
Mich persönlich verunsichert das etwas, sodass ich mich schon fast gar nicht "traue" zu fragen, weil ich denke,
dass MySensors wohl so selbsterklärend oder selbstverständlich ist. Da komme ich mir so "dumm" vor  :D
Es geht vermutlich einigen hier so, aber wer FHEM konfiguriert bekommt, ist eher nicht zu dumm dafür, es ist nur eben nicht ganz selbsterklärend!

Zitat von: Feuerpfeil am 08 November 2016, 12:50:45
Einige zusammenhängende Dinge scheinen irgendwie verstreut und auch die Beispiel Sketche auf der Homepage unterscheiden sich von denen auf Github. Teilweise haben sie auch unterschiedliche andere Dateinamen.
Das war vor dem Wechsel zu 2.0.0 besser, die Jungs sind da aber ziemlich am überarbeiten, wird wohl wieder. Am besten: Bauanleitungen von MySensors.org, Sketche von github ;).

Zitat von: Omega am 08 November 2016, 12:54:44
@kleinerDrache
Ich vermisse bei meinen Gateways auch die Möglichkeit einer Heartbeat-Funktionalität. Was für ein Sensor dranhängt, ist mir eigentlich egal - Hauptsache, dass GW spricht regelmäßig. Allerdings ist es mir nicht gelungen, einen Sketch erfolgreich aufzubauen.
Es gibt zum einen teilweise interen Readings (z.B. für battery), Details habe ich grade aber nicht parat.
Füge doch einfach einen Dummy-Sensor ein (z.B. einen Motion), also nach Beispiel in die presentaion().
Dann in der loop() einfach alle 300000 ms Motion an bzw. ausschalten oder ein "on" senden.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

kleinerDrache

Ich häng hier nochmal meinen alten GW-Sketch an der ist zwar noch ohne webconfig aber der BMP280 ist eingebunden und liefert Druck/Temperatur/Forecast. allerdings habe ich sämtliche Kommentare enfernt (mich persönlich nerven die und stören erheblich die übersicht).

Als übersicht:
ESP8266 (nodeMCU v3)
Die Sensorlib ist von Adafruit (Adafruit BMP280 + Adafruit Sensors)
MySesnors 2.0 Stabel

händisch angepasst hab ich die i2c PINS der Adafruit LIB
In der Datei Adafruit_BMP280.cpp ziemlich weit oben

bool Adafruit_BMP280::begin(uint8_t a) {
  _i2caddr = a;

  if (_cs == -1) {
    // i2c
    Wire.begin(3,1);

Da wo es rot ist müssen eure pins hin (wire doku welcher was ist) und aufpassen die GPIOS vom ESP passen nicht 1:1 auf die Arduino Pin-Nummern: siehe hier
Raspi 2 - Hmusb2 , 2xJeeLink , EnOcean pi: Serie14 Geräte , 6xHM-Sec-Rhs , 6xHM-CC-RT-DN, verschiedene MySensor Nodes, ein bischen MQTT

Beta-User

@kleiner Drache:
Danke, das ist sicher für den einen oder anderen ein aufschlußreiches Beispiel, wie das im allgemeinen geht!

Zitat von: Omega am 08 November 2016, 12:54:44
Ich vermisse bei meinen Gateways auch die Möglichkeit einer Heartbeat-Funktionalität.
Hallo Holger,
irgendwie hatte ich das noch in Erinnerung, dass eine heartbeat-Funktion dazugekommen ist: https://github.com/mysensors/MySensors/releases.
Laut https://www.mysensors.org/download/sensor_api_20 gibt es
void sendHeartbeat();

Das ganze sind aus Sicht von FHEM nach mein Perl-Verständnis eine sog. internal message, die allerdings noch nicht in 10_MYSENSORS_DEVICE.pm für FHEM "verdaubar" zu sein scheint; vielleicht gibt es in anderen Modulen entsprechenden Code, den man hierher "verpflanzen" könnte (auch im Sinne einer Einheitlichkeit!)?
Bei BatteryLevel funktioniert das mit den "internal Messages" schon jetzt, der entsprechende Aufruf ist
void sendBatteryLevel(uint8_t level, bool ack);

Gruß,

Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

kleinerDrache

Problem wird sein das sendHeartbeat eigentlich eine Meldung an den Gateway ist und keine Meldung an FHEM.  Ich nutze zu Verwaltung und auch zum OTA update das Programm MySController auch von tek. Da hat der Gateway kein "request heartbeat" wenn dort kein Sensors mit verbaut ist(wenn ich mich recht erinnere).
Raspi 2 - Hmusb2 , 2xJeeLink , EnOcean pi: Serie14 Geräte , 6xHM-Sec-Rhs , 6xHM-CC-RT-DN, verschiedene MySensor Nodes, ein bischen MQTT

Beta-User

Leider kann ich da im Moment nichts aus eigener Erfahrung beisteuern.

Wie ich es bisher verstanden habe, ist das GW eigentlich "dumm" und tut nur, was ihm der Controller sagt (mal abgesehen von einer Art Sende-Puffer für derzeit schlafende Nodes und eben den Transfer in die Message-Struktur) bzw. "übersetzt" nur wieder rückwärts, was er von den Nodes erhält. Andererseits ist das GW neuerdings auch nur eine Node. Im Prinzip sollte daher ein Heartbeat-Reading - auch wenn es vom GW selbst kommt - problemlos an FHEM weiterzugeben sein. Man muß es halt entweder
- auch beim GW irgendwo in der loop() unterbringen und von der Seite her veranlassen oder
- seitens des Controllers den heartbeat vom GW anfordern

M.E. müsste dann noch in die ...DEVICE.pm (- auf beide Fälle hin - angepaßt werden (in dem internals-Teil wie battery), weil perl-seitig im Moment diese Art Info gar nicht vorgesehen ist (und von daher vermutlich ignoriert wird).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

kleinerDrache

#927
I_PING und I_PONG gibt es ja schon in den Internen Meldungen müsste das FHEM-Modul dann halt nur noch verwenden.

Fällt mir gerade mal auf, dem FHEM-Modul fehlt auch noch eine Timezone Korrektur. MySensors nutzt ja intern nur GTC.
Raspi 2 - Hmusb2 , 2xJeeLink , EnOcean pi: Serie14 Geräte , 6xHM-Sec-Rhs , 6xHM-CC-RT-DN, verschiedene MySensor Nodes, ein bischen MQTT

Omega

Ich komme nicht voran...
Auf die Schnelle (musste meine Arduino-Installation zusätzlich auch noch neu aufbauen, da durch irgendeine Lib-Aktualisierung mit einmal kein flashen mehr möglich war) habe ich einen Sketch mit einem Dummy-Sensor aufgebaut. Definiert habe ich einen Temp-Sensor. Mein Ziel ist zunächst ganz einfach: Ausgabe irgend eines fixen Wertes - das reicht erst einmal.
Der Sketch läuft auch durch, aber ich bekomme weder eine Meldung im seriellen Monitor noch ein entsprechendes Reading in FHEM in der Gateway-Definition.

Ausgabe im ser. Monitor:

connected with WLAN4Me, channel 6
ip:192.168.0.33,mask:255.255.0.0,gw:192.168.0.1
.IP: 192.168.0.33
0;255;3;0;9;No registration required
0;255;3;0;9;Init complete, id=0, parent=0, distance=0, registration=1
Seconds since start: 0
pm open,type:2 0
Seconds since start: 11
Seconds since start: 21
Seconds since start: 32
Seconds since start: 42
Seconds since start: 53
0;255;3;0;9;TSP:SANCHK:OK
Seconds since start: 63
Seconds since start: 74
Seconds since start: 84
Seconds since start: 95
Seconds since start: 105
Seconds since start: 116
0;255;3;0;9;TSP:SANCHK:OK
Seconds since start: 126


list MySensorsGateway_7

Internals:
   DEF        192.168.0.33:5003
   DeviceName 192.168.0.33:5003
   FD         126
   NAME       MySensorsGateway_7
   NOTIFYDEV  global
   NR         880
   NTFY_ORDER 50-MySensorsGateway_7
   PARTIAL
   STATE      startup complete
   TYPE       MYSENSORS
   ack        1
   inclusion-mode 0
   outstandingAck 0
   version    2.0.0
   Readings:
     2016-11-08 21:10:38   connection      startup complete
     2016-11-08 21:10:38   state           opened
Attributes:
   first-sensorid 100
   requestAck 1
   room       MySensors
   stateFormat connection
   verbose    2


Libraries:
Arduino:    1.6.11
MySensors:   2.0
ESP8266:   2.3.0

Hat einer eine Idee, wo mein Fehler liegen könnte?

LG
Holger

NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Beta-User

Hallo Omega,

an sich sieht das ja so aus, als würde bei FHEM was ankommen, die node aber gar nicht in die loop() gehen.

Ansätze:
vor die presentation() ein "before() {Serial.println("before done");}" - wenigstens hier sollte eine Ausgabe kommen
Den setup()-Aufruf hinter die presentation() verschieben (sollte eigentlich automatisch so abgearbeitet werden, kann aber auch nicht schaden), dort mal ein "Serial.println("setup done");" rein. Wenn das nicht klappt, ist irgendwas an der presentation() kaputt, evtl. dort noch mal den Test rein, ob er diese überhaupt aufruft?

Ansonsten fiel mir noch die 255.255.0.0 auf, sollte das nicht 255.255.255.0 sein?

Gruß,

Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files