Mysensors - Zweiter MotionSensor

Begonnen von Timmi, 23 April 2016, 19:10:47

Vorheriges Thema - Nächstes Thema

Timmi

Hallo zusammen,

ich habe mit einem Arduino Nano, nRF24L01+ und PIR sowie dem Sketch von Mysensors einen MotionSensor gebaut, der problemlos mit einem SerialGateway funktioniert.

Nun wollte ich einen zweiten MotionSensor in FHEM integrieren, der sich mit dem selben SerialGateway verbinden soll.

Leider wird der zweiter Sensor nicht mehr von FHEM automatisch angelegt.

Der erste MotionSensor :


define serial_gateway MYSENSORS /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@115200
attr serial_gateway autocreate 1
attr serial_gateway stateFormat connection
attr serial_gateway verbose 6

define MYSENSOR_0 MYSENSORS_DEVICE 0
attr MYSENSOR_0 IODev serial_gateway
attr MYSENSOR_0 mapReading_tripped1 1 tripped
attr MYSENSOR_0 mode node
attr MYSENSOR_0 requestAck 1
attr MYSENSOR_0 version 1.5.4

 
Ich benutze für die Spannungsstabilisierung ein Base Modul.

Danke für jeden Tipp !

Gruß
Tim

Beta-User

Hallo Tim,

mir kommt komisch vor, dass der Motion Sensor die ID 0 hat. Bei mir ist die "0" das Gateway (das jedenfalls in der Dev-Version 2.0) auch als Sensor fungieren kann und nach meiner Erfahrung in FHEM auch als seperate Node behandelt wird, ich nutze das aber derzeit (noch) nicht produktiv).

Vielleicht hast Du auch die Node-ID's manuell vergeben? Oder die anderen beiden Arduinos in der Vergangenheit mal als Gateway konfiguriert gehabt (dann ist evtl. die "0" im EEPROM gespeichert)? Unter Deiner Version sollte das aber eigentlich nicht so sein, und ich gehe auch davon aus, dass die Sensoren nicht direkt an Deinem Controller-PC hängen.

Vergibt doch die ID nochmal manuell für die Motionsensoren (in 2.0: #define MY_NODE_ID 100 bzw. 101) und teste die Sensoren im gleichen Raum wie sich auch das Gateway befindet, um Funkprobleme auszuschließen; ich war da auch erst etwas zu ortimistisch.

Viel Erfolg,

Jörg
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

Timmi

Danke für deine Antwort !

Die ID habe ich nicht manuell vergeben, das Device und die ID wurden automatisch nach "set gateway inclusion-mode on" angelegt.

Bei mir ist die ID komischerweise immer "0" auch nachdem ich die EEPROM's gelöscht und alles wieder neu eingerichtet habe. (schon mehrmals)

Diese drei Zeilen werden immer automatisch angelegt :

define MYSENSOR_0 MYSENSORS_DEVICE 0
attr MYSENSOR_0 IODev serial_gateway
attr MYSENSOR_0 mapReading_tripped1 1 tripped


Wenn ich die ID manuell vergebe, dann funktioniert der erste Sensor auch nicht mehr.

Ich kann auch nicht für den zweiten Sensor die oberen Zeilen mit einer anderen ID selbst in fhem.cfg eintragen, weil dann wird es keine "Readings" mehr geben :)

Ausserdem funktioniert der erste MotionSensor nicht stabil, mal geht es und mal geht es nicht, obwohl der Abstand vielleicht 1,5-2 Meter beträgt.

Mein Ziel war die günstigen PIR's (HC-SR501) per Funk mit FHEM zu verbinden.

Danke.
Gruß
Tim



Beta-User

Das klingt nach einem Mißverständnis.

Der Ablauf ist eigentlich: Node startet => kenne ich meine eigene ID???
ja=> melde mich beim Gateway (bzw. einer Repeater-Node) mit der an bzw. schicke meine readings unter dieser ID
nein=> Frage über das Gateway beim Controller eine ID an (was nach meiner Erfahrung bei FHEM eine nicht vergebene Nummer ab 100 ist) => die wird dann im EEPROM der Node gespeichert und in FHEM wird das MYSENSORS_DEVICE angelegt.

Man kann diesen automatischen Weg (teilweise) umgehen, indem man die ID bereits beim flashen des Arduino mit ins EEPROM schreiben läßt. Dazu wird in dem Sketch (nicht in der fhem.cfg) die Node-ID definiert (z.B. #define MY_NODE_ID 100, im Kopfteil bei den ganzen #define und #include-Anweisungen), man braucht auch vorher den EEPROM der Node nicht zu löschen. Wenn Du ein reading einer Node "0" bekommst, hast Du vielleicht ein "#define MY_NODE_ID 0" im Sketch stehen? Wird das reading aktualisiert (rot), wenn Du eine Motion hast?

Das automatische Anlegen in FHEM funktioniert trotzdem, auch wenn die Node ihre ID bereits kennt.

Zur Fehlersuche würde ich noch empfehlen, die einzelnen Sensor-Nodes erstmal am USB-Anschluß des Rechners zu betreiben, mit dem sie programmiert werden. Sofern Du die Arduino-IDE benutzt, kannst du über den seriellen Monitor gut nachvollziehen, ob es überhaupt eine "Motion" gab, was gesendet wird (und ob es erfolgreich ist, jedenfalls wenn ein "Ack" angefragt wird).

Sofern Du Probleme mit der Reichweite hast: Willkommen im Club >:(! Es scheint sehr unterschiedliche Erfahrungen mit den NRF+ zu geben. Leider kann ich hier keine wirklich tollen Tips geben, ich habe dann im Gateway (1. Stock) und in der wichtigsten Node (Keller, auch als Repeater benutzt) NRF+-Module mit externer Antenne eingebaut, seitdem ging's eigentlich recht problemlos. Der Kondensator-Tip hat jedenfalls bei mir nicht wirklich geholfen (aber auch nicht geschadet); ich würde wohl mal mit externen Antennen experimentieren (aus dem Gedächtnis: 17cm Kabelstück in das Loch der Print-Antenne löten). ansonsten: https://www.mysensors.org/build/debug

Was für mich noch hilfreich war: Wenn ich "sehen" will, was im Mysensors-Funkverkehr so läuft, nehme ich eine Repeater-Node an den USB-Anschluß meines Laptops und schau dort auf den seriellen Monitor.
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

KarlHeinz2000

Beim EEPROM löschen aufpassen: Der Arduino Lösch-Sketch schreibt 0x00 rein. Das ist falsch und führte bei mir auch zu ID:0.
Bei den Mysensor Beispielen liegt "ClearEepromConfig". Der schriebt 0xFF rein, so wie bei der Auslieferung. Dann läufts.

Timmi

Danke euch beiden !

Es war in der Tat ein Mißverständnis, weil ich nicht wusste, dass man die ID bereits beim Flashen ins EEPROM schreiben kann   ???

MotionSensor-1 :
Nachdem ich im Serial Monitor keinen Fehler finden konnte, habe ich das Gateway an FHEM angeschlossen, aber Ich weiß nicht mehr wie viele Stunden ich darangesessen habe, bei mir wird immer die Device-ID "0" angelegt :
(define MYSENSOR_0 MYSENSORS_DEVICE 0)

Und auf FHEM unter Everything -> MYSENSORS_DEVICE -> steht  " MYSENSOR_0 mit drei Fragezeichen ".

Bei einem "Motion" wird das Reading aktualisiert (rot) und zeigt auch "on" bzw. "off" an, damit schalte ich eine Funksteckdose, aber halt nicht immer zuverlässig !

Wenn ich die ID manuell in MotionSensor-Sketch eintrage #define MY_NODE_ID 100, dann will das automatische Anlegen in FHEM nicht mehr funktionieren, egal wie oft ich versuche, nehme ich das raus, dann klappt es wieder mit ein paar Klimmzügen, aber halt wie immer mit ID "0".

Auch nach dem Löschen von EEPROM mit "ClearEepromConfig" blieb die ID nach wie vor "0".

Mit dem zweiten Sensor klappt es gar nicht, im Serial Monitor steht " find parent " , dann habe ich den zweiten Sensor samt Gateway mit dem Sketch "GettingStarted" von RF24-Bibliothek getestet, Ergebnis : kein Fehler

Keine Ahnung wo das Problem liegt !

Gruß
Tim


SvenJust

Um den Fehler einzugrenzen, sind die Debugausgaben auf der seriellen Schnittstelle des Sensors interessant. Im folgenden Link https://www.mysensors.org/build/debug unter Enabling Debug Logging und Monitoring the Debug Logs steht beschrieben, wie es geht.

Kannst Du die Debugausgabe hier posten?

VG
Sven
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Beta-User

Das klingt wirklich verwirrend...

Sorry, war evtl. auch mißverständlich ;), wie ich das geschrieben habe:

Zitat von: joe_re am 25 April 2016, 11:50:16
#define MY_NODE_ID 100

Im Sketch sollte KEIN KOMMA am Ende stehen; vielleicht war das ja der Fehler, warum die Node nicht von FHEM erkannt wurde; bei mir klappt das (allerdings anderer SW-Stand bei Mysensors, sollte aber egal sein, da das Protokoll jedenfalls diesbezüglich nicht anders ist).

Ansonsten auch von mir nochmal die Empfehlung: Debug einschalten, serielle Konsole nutzen.
Das geht übrigens (evtl. aber nicht so umfangreich) nicht nur in der config.h, sondern in der Regel auch im einzelnen Sketch (#define MY_DEBUG). Der Eintrag ist idR. vorhanden, aber oft auskommentiert.
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

Timmi

Ich glaube, ich weiss jetzt wo das Problem liegt und zwar habe ich leider die "HopeRF RFM73 clone" Module erwischt, das Bild bei Ebay zeigt aber das richtige NRF2401+ Modul, naja die werde ich zurückschicken ... sehr ärgerlich

Danke euch allen !

Gruß
Tim