Integration von MySensors in FHEM geplant?

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

Vorheriges Thema - Nächstes Thema

hexenmeister

keine Ahnung, ob er hier noch mitliesst. Schreibe ihm einfach eine Nachricht. Ein Issue ist ja auch nichts anderes, als eine Fehlerbeschreibung.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Spezialtrick

Das Problem hat sich aufgelöst. Es lag daran, dass ich zum Testen einen Arduino Nano genutzt habe. Heute kam der erste Arduino Pro Mini an und mit diesem werden die Batteriewerte perfekt übertragen. :)
FHEM - Debmatic - Zigbee2MQTT - Homekit

hexenmeister

OK, das verstehe ich zwar nicht, aber wenn das jetzt funktioniert... :)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Spezialtrick

Ich kann es mir auch nicht erklären, aber im Log tauchen nun auch korrekte Meldungen auf, die das Modul offenbar verwertet:

2015.03.23 11:56:40 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 100-100-0 s=255,c=3,t=0,pt=1,l=1:82'

2015.03.23 11:56:40 5: MYSENSORS gateway MySensors: read: 100-100-0 s=255,c=3,t=0,pt=1,l=1:82
2015.03.23 11:56:40 5: MYSENSORS Read: Rx: fr=100 ci=255 c=003(C_INTERNAL    ) st=000(I_BATTERY_LEVEL ) ack=0 '82'
FHEM - Debmatic - Zigbee2MQTT - Homekit

Spezialtrick

Langsam verzweifle ich mit der Vergabe der Node IDs.

Bis vor paar Minuten hatte ich wenigstens einen funktionierenden Sensor (Temp,Hum,Pres) mit Übermittlung des Batteriestandes (Node ID 102). Da ich mir nicht erklären könnte wieso der Batteriestand meines Motion/Light Sensor (Node ID 0) von Fhem nicht erkannt wird habe ich einfach mal den Motion/Light vom Hexenmeister mit meiner Batterie-Ergänzung aufgespielt.

Der Sensor wurde von Fhem erkannt, aber wiederum mit der ID 0 angelegt. Der Batteriestand fehlte. Daher habe ich meinen funktionieren Sensors (ID 102) ebenfalls mit dem gleichen Sketch bespielt. Die angeschlossenen Sensoren passen zwar nicht, aber wenigstens die Batteriemessung hätte ja erkannt werden müssen. Interessanterweise wurde auch dieser Sensor mit der ID 0 angelegt und natürlich ohne Batteriestand...

Daraufhin habe ich beide Sensoren mit dem Standard Batterie-Sketch von der MySensors Website bespielt. Wiederrum werden bei Sensoren als ID 0 angelegt.

Ich gehe daher langsam davon aus, dass entweder mein Serial-Gateway spinnt oder die ID Vergabe an die Nodes im Fhem Modul nicht richtig funktioniert. Es kann ja nicht korrekt sein, dass mehrere Nodes die gleiche ID zuordnet bekommen.

Wenn ich dem Sensor eine feste ID gebe, in dem ich "gw.begin();" durch "gw.begin(NULL, 42);" 42 steht hier für die ID, wird der Sensor ohne Probleme mit der ID 42 angelegt und auch der Batteriestand wird als Reading angelegt.

Demnach muss doch ein Fehler bei der Vergabe der ID bestehen oder bin ich auf dem Holzweg?
FHEM - Debmatic - Zigbee2MQTT - Homekit

fh555

Hallo Spezialtrick,

ich denke nicht das es am FHEM liegt, da ich gestern auch einen Sensor per "Auto-ID" in das FHEM eingepflegt hatte (sonst haben meine Sensoren auch "feste ID's").

Wichtig ist auch, wenn man verschiedene Sketche mit IDs ausprobiert, sollte man den EEPROM vorher löschen, da die Informationen bei Erstkontakt dort hinterlegt werden! Versuche das erst einmal, ob das funktioniert.

Also
1. "ClearEepromconfig" auf den Arduino spielen
2. 1x Reste drücken, damit er sicher einmal das Programm abarbeitet
3. dein Sketch wieder aufspielen
4. 1x Reset drücken

jetzt sollte es funktionieren.

Gruß fh555


Spezialtrick

Hallo fh555,

Vielen Dank für deine Antwort. Du hast Recht. Es liegt daran, dass ich das EEPROM nicht richtig gelöscht habe.

Ich habe statt dem "ClearEepromconfig" Sketch immer den "eeprom_clear" verwendet. -.-

Nun funktioniert es wie gewollt.  :)
FHEM - Debmatic - Zigbee2MQTT - Homekit

fh555

Hallo Spezialtrick,

freut mich, dass ich dir helfen konnte.  ;D

Franz Tenbrock

#353
Hallo,
kaspern nun schon ein paar Stunden am MySensors Projekt.
Habe ein serielles Gateway und einen Distance Sensor aufgebaut.
Nachdem ich nun hin und hergelesen habe, habe ich gerade meinen Distanz Sensor mit dem Seriellen Monitor der Arduinio Software getestet
send: 255-255-255-0 s=255,c=3,t=3,pt=0,l=0,st=fail:
Ping: 5 cm
req node id
send: 255-255-255-0 s=255,c=3,t=3,pt=0,l=0,st=fail:

Die Entfernung hab ich mehrfach geändert und es passt dann auch wohl.

Was ist mit dem Kondenstor der zwischen VCC und GND empholen wird?

Leider hat der Ardunio für das Gateway irgendwie eine Macke.
Am Raspi angeschlossen

pi@raspberrypi ~ $ ls -l /dev/serial/by-id
total 0
lrwxrwxrwx 1 root root 13 May  3 16:03 usb-FTDI_FT232R_USB_UART_A96HTBN7-if00-port0 -> ../../ttyUSB0
pi@raspberrypi ~ $

soll doch wohl heissen das er ok ist.
Wenn ich den Baustein dann solo oder mit Funkbauteil am PC anschließe kommt im Geräte Manager

Die Treiber für dieses Gerät wurden nicht installiert. (Code 28)
Es sind keine kompatiblen Treiber für dieses Gerät vorhanden.

dementsprechend komme ich im Ardunio seriell Monitor nicht ran.

was tun, neuen flashen ( hab ja noch 4)
oder kann man den retten?

welchen Sketch wenn ich ihn über usb am raspi anschließe
den von der mysensor Seite
SerialGateway

wie das geht weiß ich ja jetzt
:P

so habe noch einen anderen neue ausprobiert die selbe Fehlermeldung
dann noch einen von einem anderen Lieferanten
der funktioniert
also SerialGateway.ino von MySensors neu geflasht
und dann mit dem Serial Monitor, nun weiß ich was das ist...
überprüft
gibt das hier aus ( leider nicht kopiert also per Hand - sollte richtig sein?!)
0;0;3;0;14;Gateway startup complete.

das hier zeigt fhem:
DEF
/dev/ttyAMA0@115200
DeviceName
/dev/ttyAMA0@115200
FD
4
NAME
gateway
NOTIFYDEV
global
NR
91
NTFY_ORDER
50-gateway
PARTIAL
����~�����
STATE
connected
TYPE
MYSENSORS
ack
0
inclusion-mode
1
outstandingAck
0


nur der Sensor Distanz taucht nicht auf grrrrrr
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

hexenmeister

ZitatNachdem ich nun hin und hergelesen habe, habe ich gerade meinen Distanz Sensor mit dem Seriellen Monitor der Arduinio Software getestet
send: 255-255-255-0 s=255,c=3,t=3,pt=0,l=0,st=fail:
Ping: 5 cm
req node id
send: 255-255-255-0 s=255,c=3,t=3,pt=0,l=0,st=fail:
Der Sensor frag nach einer neue ID und bekommt sie nicht. Du musst den Gateway in inclusion mode versetzen.

Zitat
Was ist mit dem Kondenstor der zwischen VCC und GND empholen wird?
Bei einer stabilen Versorgung brauchst Du den nicht.

Mit den Treiberproblemen kann ich leider nichts anfangen. Es gab zwar schon mal Probleme mit Windows-Treibern und gefälschten FTDI-Chips, da haben die Originaltreiber den Chip (ducht setzen von VID und PID auf 0) lahmgelegt. Aber dann würde dieser Chip auch nicht mehr unter Linux funktionieren.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Franz Tenbrock

Hallo
thanks,
hatte das schon mal gemacht, aber mit dem vorherigen ardunio, ob ich das bei dem neune schon gemacht hatte ?

das kommt nun
2015.05.03 19:14:22 5: MYSENSORS/RAW: /����~�����
2015.05.03 20:53:40 5: MYSENSORS send: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=005(I_INCLUSION_MODE) ack=0 '1'

2015.05.03 20:53:40 5: SW: 303b303b333b303b353b310a
2015.05.03 20:53:40 5: MYSENSORS/RAW: ����~�����/��>|����
2015.05.03 20:55:01 5: MYSENSORS send: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=005(I_INCLUSION_MODE) ack=0 '1'

2015.05.03 20:55:01 5: SW: 303b303b333b303b353b310a
2015.05.03 20:55:01 5: MYSENSORS/RAW: ����~�������>|����/��~�����
2015.05.03 20:55:13 5: MYSENSORS send: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=005(I_INCLUSION_MODE) ack=0 '1'

2015.05.03 20:55:13 5: SW: 303b303b333b303b353b310a
2015.05.03 20:55:13 5: MYSENSORS/RAW: ����~�������>|������~�����/��~�����
2015.05.03 20:55:54 5: MYSENSORS send: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=005(I_INCLUSION_MODE) ack=0 '1'

2015.05.03 20:55:54 5: SW: 303b303b333b303b353b310a
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Franz Tenbrock

das hier war am Ardunio Serial monitor, da war das gateway nicht im Spiel
Nachdem ich nun hin und hergelesen habe, habe ich gerade meinen Distanz Sensor mit dem Seriellen Monitor der Arduinio Software getestet
send: 255-255-255-0 s=255,c=3,t=3,pt=0,l=0,st=fail:
Ping: 5 cm
req node id
send: 255-255-255-0 s=255,c=3,t=3,pt=0,l=0,st=fail:
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

hexenmeister

Zitat von: Franz Tenbrock am 03 Mai 2015, 20:58:11
das kommt nun
2015.05.03 19:14:22 5: MYSENSORS/RAW: /����~�����

Das sieht irgendwie nach einer falschen Baudrate-Einstellung...
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: Franz Tenbrock am 03 Mai 2015, 21:19:57
das hier war am Ardunio Serial monitor, da war das gateway nicht im Spiel
Nachdem ich nun hin und hergelesen habe, habe ich gerade meinen Distanz Sensor mit dem Seriellen Monitor der Arduinio Software getestet
send: 255-255-255-0 s=255,c=3,t=3,pt=0,l=0,st=fail:
Ping: 5 cm
req node id
send: 255-255-255-0 s=255,c=3,t=3,pt=0,l=0,st=fail:
Das ist schon klar. Dieser Sensor hat keine ID und muss erstmal eine bekommen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Franz Tenbrock

#359
das ist der Sketch en ich geflasht habe

#include <SPI.h>
#include <MySensor.h> 
#include <NewPing.h>

#define CHILD_ID 1
#define TRIGGER_PIN  6  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     5  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 300 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
unsigned long SLEEP_TIME = 5000; // Sleep time between reads (in milliseconds)

MySensor gw;
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
MyMessage msg(CHILD_ID, V_DISTANCE);
int lastDist;
boolean metric = true;

void setup() 
{
  gw.begin();

  // Send the sketch version information to the gateway and Controller
  gw.sendSketchInfo("Distance Sensor", "1.0");

  // Register all sensors to gw (they will be created as child devices)
  gw.present(CHILD_ID, S_DISTANCE);
  boolean metric = gw.getConfig().isMetric;
}

void loop()     
{     
  int dist = metric?sonar.ping_cm():sonar.ping_in();
  Serial.print("Ping: ");
  Serial.print(dist); // Convert ping time to distance in cm and print result (0 = outside set distance range)
  Serial.println(metric?" cm":" in");

  if (dist != lastDist) {
      gw.send(msg.set(dist));
      lastDist = dist;
  }

  gw.sleep(SLEEP_TIME);
}





#define CHILD_ID 1
ist das die Zeile die auskommentiert werden muss also so:
define CHILD_ID 1
?
hab bisher kaum mit solchem code zu tun gehabt, daher die Frage
muss da sonst noch was an # gelöscht werden?
#define CHILD_ID 1
#define TRIGGER_PIN  6  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     5  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 300 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at
Kann man unter Umständen die Zeit in der er sich meldet ändern.

gw.sleep(SLEEP_TIME);

Soll in eine Zisterne , reicht da 1x in der Stunde !
Das Video zum Gateway war ja super ausführlich...
Schreibe dann mal das Ganze Projekt in einem Doku zusammen , halt für andere Anfänger
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi