Verschiedenes > MySensors

Mysensors - Zweiter MotionSensor

(1/2) > >>

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 :


--- Code: ---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

--- Ende Code ---
 
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

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 :

--- Code: ---define MYSENSOR_0 MYSENSORS_DEVICE 0
attr MYSENSOR_0 IODev serial_gateway
attr MYSENSOR_0 mapReading_tripped1 1 tripped

--- Ende Code ---

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.

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.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln