Integration von MySensors in FHEM geplant?

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

Vorheriges Thema - Nächstes Thema

Pythonf

Unter Win 10 x64 mit Arduino 1.6.7 geflasht. Ausgestetst hab ich zwei verschiedene Nano China Clones und einen Arduino Mega.
Auf dem Seriellen Monitor bekomm ich auch mit angeschlossenem DHT22 keine lesbaren Nachrichten.
Liegt das irgendwie an Win 10 ? Arduino ist x86. Ich nehm an, wenn ich auf dem seriellen monitor nichts lesbares bekomm werd ich auch in FHEM nichts sinnvolles hinbekommen. Ich hab aber keine Ahnung woran das liegen könnte. Arduino IDE meldet immer erfolgreich hochgeladen
Beste Grüße
Fabian

schka17

Hallo Fabian,
Welche geschwindigkeit hast du beim seriellen Monitor eingetragen, bzw. entspricht diese dem Eintrag in der MyConfig.h?


Sent from my iPad using Tapatalk
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

Pythonf

#677
Danke!! Die Baudrate hatte ich überhaupt nicht angegeben - jetzt funktioniert alles ;D
Allerdings nur solange ich nur einen Sensor verwende. Ich dachte, die Sensorid wird dynamisch vergeben? Ich bekomme immer die id=11. Muss ich die ID irgenwo manuell vergeben? Ich hab die MySensorSketches bisher nicht verändert.

Ekkehard

Hatte gerade das gleiche Problem.
Du musst die serielle Schnittstelle auf die richtige Geschwindigkeit einstellen, mit einem @115200 direkt ohne Leerzeichen an der Portbezeichnung:

define gateway MYSENSORS /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A700CVWE-if00-port0@115200


alex0469

Ich hätte da mal ein komisches Problem anzubieten ich habe mit der MySensors Entwicklungsversion einen 18B20 Temperatursensor direkt am Seriellen Gateway angeschlossen aber im Gegensatz zu anderen Sensoren kann ich diesen in FHEM nicht auslesen oder verarbeiten obwohl er scheinbar richtig im Logfile des Gateway erscheint was mache ich falsch ?

2016.03.14 19:34:38 5: MYSENSORS Read: Rx: fr=000 ci=000 c=001(C_SET         ) st=000(V_TEMP          ) ack=0 '5.6'

Gruß Alex

Pythonf

Wie ist bei euch die Reichweite eines Batteriebetriebenen MySensors?
ProMini 3.3V und sowohl Sender als auch Empfänger mit der Antenne auf dem NRF24L01+.
Ich hab einen 4.7uF Kondensator zwischen VCC und GND am NRF angelötet und die Reichweite im Batteriebetrieb ist weniger als 5m. Bei einem Nano mit USB-Stromversorgung dagegen deutlich besser.
Gemessen wird Luftdruck und Temperatur mit einem DHT22. Da der DHT22 mit der Spannung der Batterie keine korrekten Werte geliefert hat hab ich einen StepUp zwischengeschaltet.
Ist es eigentlicht möglich/sinnvoll den DHT nicht über VCC mit Strom zu versorgen sondern über einen Pin den man nur während der Messung auf high stellt?

Grüße
Fabian

MadMax-FHEM

Reichweite mit Batterie gleiche Funkmodule also mit Antennen auf der Platine: mind. 6m und durch die Wand...

Geht vermutlich weiter, habe nur noch nicht getestet bzw. war noch kein Anwendungsfall die Reichweite zu messen...

Habe allerdings (noch) gleich ein StepUp/Down-Modul auf 3.3V (hatte ich mal für ESP8266 besorgt aber ESP8266 wg. zu hohem Batterieverbrauch wieder verworfen) und daran dann den "mySensor" hängen.

Sensor nur mit Strom versorgen, wenn er benötigt wird verlängert die Lebensdauer der Batterie (werde ich auch noch tun).
Ob das direkt über einen Out des Arduino geht hängt vom Stromverbrauch des Sensors ab.
Ansonsten per Transistor/FET schalten.

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)

fh555

Reichweite ist bei mir viiieeele Meter  ;D mit den Standart Antennen auf den NRF Platinen.
Am Gateway habe ich eine mit externer Antenne und ich empfange sogar die Fenstersensoren, welche im bei mir im Keller sind.

Also durch die Decke 1.OG dann durch den Raum EG und deren Decke (massive Betondecke/Boden) dann weiter in den Keller.
Das hätte ich auch nicht für möglich gehalten :-)

Ich denke darüber nach, mein Gateway noch mit den großen Modul auszustatten, somit (hoffe ich) könnte ich ebtl. sogar den Garten abdecken ohne das ich ein Repeater benötige.

Gruß Jens

Niko1987

Zitat von: alex0469 am 14 März 2016, 20:32:22
Ich hätte da mal ein komisches Problem anzubieten ich habe mit der MySensors Entwicklungsversion einen 18B20 Temperatursensor direkt am Seriellen Gateway angeschlossen aber im Gegensatz zu anderen Sensoren kann ich diesen in FHEM nicht auslesen oder verarbeiten obwohl er scheinbar richtig im Logfile des Gateway erscheint was mache ich falsch ?

2016.03.14 19:34:38 5: MYSENSORS Read: Rx: fr=000 ci=000 c=001(C_SET         ) st=000(V_TEMP          ) ack=0 '5.6'

Gruß Alex

Hallo Alex,

soweit ich weis kann ein Gateway nur als Gateway dienen.
Am Gateway können keine Sensoren oder Aktoren betrieben werden.

Gruß
Flo

KarlHeinz2000

Ich bekomme mit requestTime aktuell eine Zeit 2h früher gesendet als es aktuell ist (Node empfängt 20:00, obwohl es schon 22:00 ist). Sieht irgendwie nach Zeitzone und DST aus...
FHEM auf dem Raspi arbeitet mit der richtigen Zeit. Kann man das auf FHEM Seite korrigieren?

Sany

Richtig erkannt, das Gateway arbeitet mit UTC. Du musst im Arduino-Sketch die gewünschte Zeitzone einstellen.

schau mal hier:
http://playground.arduino.cc/Code/Time (Update beachten!)
und hier
https://github.com/JChristensen/Timezone

In den Libaries sind Beispiele, damit sollte es Dir möglich sein, die richtige Zeit zu errechnen.


fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

KarlHeinz2000

Ok, alles klar.
Aber gibt es einen Grund für UTC?

Sany

mysensors API (1.5)
ZitatI_TIME   1   Sensors can request the current time from the Controller using this message. The time will be reported as the seconds since 1970

Das ist wohl Unix-Zeit, die meisten Rechnersysteme verwenden diese:
ZitatWhat is epoch time?

The Unix epoch (or Unix time or POSIX time or Unix timestamp) is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds (in ISO 8601: 1970-01-01T00:00:00Z).
(stammt von http://www.epochconverter.com/)

Grund für UTC: da mußt Du Torvalds fragen  ;)
Dein fhem wird wohl auf einem Linux laufen, das arbeitet mit UTC und Zeitzone (Windows übrigens auch). Wenn Du mit einem Zeitserver synchronisierst wird die interne Linux-Uhr auch auf UTC gestellt, über die eingestellte Zeitzone bekommst Du dann lokale Zeit angeziegt (desktop oder date)

Mit der Timezone libary klappt dann auch der Winter/Sommerzeit wechsel ganz von alleine, eben erst erfolgreich durchgeführt.

Gruß
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Hauswart

#688
Zitat von: Hauswart am 29 Februar 2016, 09:05:24
Hallo Jörg, danke für deinen Beispielcode. Leider ist dieser Code halt statisch und muss für jeden Temperatur-Sensor angepasst werden. Ich finde den Sketch sehr interessant, kannst du uns mehr zum Aufbau / den Hintergründen erzählen?

PS: Mein Sketch soll on the fly die DS18B20 ID zusammen mit den Temperaturen ausgeben, leider hatte ich dieses WE keine Zeit daran zu arbeiten.


So hier mal eine erste Testversion: https://github.com/Kolbi/MySensors/blob/master/DallasTemperatureSensor_with_ID.ino


Funktioniert soweit eigentlich auch schon, nur ist mir derzeit noch nicht klar, wie ich es in FHEM verarbeite bzw. nach IDs trenne?




Nachtrag:
Bitte beim entsprechenden Device (autocreate) folgendes eingeben:
attr MYSENSOR_104 userreading mapReading_id 0 id
Leider muss man derzeit die ID-Readings (noch) von Hand anlegen. Das Problem ist leider, dass die Beziehung Reading <=> Sensor nicht immer identisch ist, sondern variiert.
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

Beta-User

Hallo Hauswart,

das mit der eindeutigen Zuordnung der einzelnen Sensoren ist echt eine harte Nuss; ich habe damals die Lösung über das Array gewählt, weil ich keine Möglichkeit gesehen habe, auf andere Weise sicherzustellen, dass der von FHEM "gesehene" Wert auch zum "richtigen" Sensor paßt.

Nachdem ich jetzt gestern noch einige Tests gemacht habe und meine damalige Link-Liste durchgesehen habe, folgende Gedanken:

- Zuordnung innerhalb FHEM:
Hier scheint FHEM derzeit mit anderen Infos außer der Temperatur nichts anfangen zu können. Jedenfalls konnte ich auch bei mir die in Deinem Code nach jeder Messung übermittelte ID nirgendwo wiederfinden. Dann habe ich noch versucht, das im Rahmen der Presentation mögliche Kommentarfeld zu nutzen (nicht mal ein fester Text-String war in FHEM wiederzufinden, und einen Char* aus der Adresse machen, ist auch nicht so einfach...).
Aber vielleicht gibt es eine einfache Möglichkeit, das in das MYSENSORS-DEVICE-FHEM-Modul mit reinzubasteln (dann bliebe neben der Formatumwandlung "nur" noch die Frage, wie man das Kommentarfeld auswertbar macht; hier könnte man vielleicht aber auch den Reading-Namen auf den übermittelten Kommentar ändern, wenn ein solcher vorhanden ist; was ja nicht alle für Mysensors denkbaren Temperatursensoren erforderlich ist bzw. Sinn macht)

- Zuordnung auf der Arduino-Seite:
Hier kann man im Standard-Sketch m.E. nie sicher sein, ob sich die interne Nummerierung geändert hat, wenn "irgendwas" passiert (vom einfachen Reboot über den Ausfall einzelner Sensoren oder das Anklemmen neuer usw.).
Eine Lösung dazu wäre die mit dem starren Array, was aber erfordert, dass man vorher mühsam die Adressen ausliest und dann bei der Montage noch weiß, welche Adresse zu welchem der Kabel gehört. Umständlich eben.
Hier hat LeoDesigner einen interessanten Ansatz gewählt, nämlich dynamisch ein Array zu bilden und im EEPROM zu speichern. Das dürfte andere Nachteile haben, macht es aber dahingehend einfach, dass man "nur" jeweils die Sensoren einen nach dem anderen anschließt und den Arduino jeweils zwischendurch neu startet. Den entsprechenden Sketch (nicht getestet) gibt es unter https://github.com/leodesigner/mysensors-arduino/blob/master/DallasTemperatureSensor_Recall/DallasTemperatureSensor_Recall.ino

Hoffe, das führt weiter.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors