Integration von MySensors in FHEM geplant?

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

Vorheriges Thema - Nächstes Thema

Edi77

Wäre auch eine alternative zum FHT80TF-2 müsste dann aber noch ein Gate für Homematic haben.
Müsste sowieso mal dann schauen wie lange der Mysensors mit Batterie klar kommt, ist ja auch nicht unerheblich.
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

r_knipp

Oh, das ist ja gar kein Homematic was du da haben willst? Sah so nach Homematic aus das Teil.
Wenn du noch kein Homematic nutzt würde ich an deiner Stelle für sowas dann wohl bei MySensors bleiben.

Beta-User

Zitat von: Edi77 am 04 Mai 2016, 12:47:47
Wäre auch eine alternative zum FHT80TF-2 müsste dann aber noch ein Gate für Homematic haben.
Müsste sowieso mal dann schauen wie lange der Mysensors mit Batterie klar kommt, ist ja auch nicht unerheblich.
Zitat von: r_knipp am 04 Mai 2016, 13:17:06
Oh, das ist ja gar kein Homematic was du da haben willst? Sah so nach Homematic aus das Teil.
Wenn du noch kein Homematic nutzt würde ich an deiner Stelle für sowas dann wohl bei MySensors bleiben.

r_knipp hat da teilweise recht: das Versenden der Befehle an den FHT ist Slow-RF (433MHz), sollte also auch über einen Eigenbau-CUL/FHEMDuino (oder ähnliches, evtl. sogar eine Mysensors-Node) gehen, wenn Du die Investition in einen "echten" CUL scheuen solltest. HM-Unterstützung ist jedenfalls m.E. nicht zwingend erforderlich.

Batteriebetriebener MySensor: Keine Erfahrungen, kommt aber wohl auf den Arduino (5V/3.3V) an und darauf, wie oft Du messen willst (bzw. wie lange jeweils den Arduino schlafen legen könntest) bzw. wie schnell die Reaktion erfolgen soll. Wenn es nur um die Heizung geht, sollten alle 5 Min (oder mehr) reichen, der HK ist ja eh' träge. Vielleicht ginge auch ein "power-on" bei Fensteröffnung, aber da bin ich nicht der Experte...
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

Edi77

Hallo,

Hatte gestern noch mit ein paar Nachbauten von Arduino pro mini 3,3V gebastelt.
Ich hab da kein sketch drauf bekommen, hatte einen CH340 und einen FTDI Adapter mit 3,3V.
An einem Adruino pro mini 5V laufen die Adapter.
Ich habe mir jetzt mal noch einen anderen Nachbau pro mini 3,3V bestellt.
Ich denke auch 3 - 5 min. Abfrage sollte ausreichen.
Die Tür/Fenster Kontakte soll der Zustand auch noch an eine Alarmzentrale weiter gemeldet werden, da reicht mir aber diese Zeit auch aus.
Ich denke so könnte ich dort wo ich nicht verkabeln kann, ein Tür/Fenster Kontakt für ca. 10Euro realisieren.
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

r_knipp

#739
Hier: http://forum.mysensors.org/topic/3540/ir-sender-for-stereo-receiver/5
können wir uns die Senderoutine für den IR Sender/Empfänger abgucken :)

Ich frage mich nur noch wie das aussehen muss, was man aus FHEM an den Sensor schickt. ???

Beta-User

Zitat von: r_knipp am 04 Mai 2016, 14:32:43
Hier: http://forum.mysensors.org/topic/3540/ir-sender-for-stereo-receiver/5
können wir uns die Senderoutine für den IR Sender/Empfänger abgucken :)

Ich frage mich nur noch wie das aussehen muss, was man aus FHEM an den Sensor schickt. ???

Entweder so (dann tut die Node-Senderseite weiter so, als wäre sie ein "Light", wir können also nur on oder off senden), oder wir nutzen die IR-Funktionalität (was mir besser gefallen würde).

Das könnte wie folgt aussehen:
- Wir kennen dann irgendwann ja die Codes und die zugehörigen Protokolle (im Idealfall alles NEC, habe auch einen Yamaha!).
- Zumindest IR_RECEIVE ist ein char*, also sollte es IR_SEND auch sein? Dann müßte man eigentlich den ganzen Sendebefehl von FHEM aus absetzen können, also z.B. "set MYSENSORS_100 Reading_irsend3 NEC, 0x1EE17887, 32", müßte das nur als char empfangen ("char* incomingIrMessage = message.getChar();") und dann könnte evtl. schon ein schlichtes "irsend.send(incomingIrMessage);" ausreichen. (Die Befehle sind erstmal frei erfunden...)
Das wäre m.E. optimal, weil dann der Sensor selbst überhaupt nichts mehr wissen muß ;D => das wäre dann auch einfach zu erweitern.

- Geht das nicht, müßte zumindest der HEX-Wert versendbar sein. Dann besteht die Möglichkeit, irsend schon unter Angabe des zu verwendenden Protokolls aufzurufen (also "irsend.sendNEC(1EE17887)"). Unterschiedliche FB-Typen/Protokolle müßte man dann evtl. über unterschiedliche Child-ID's unterscheiden ;).
- Geht das alles auch nicht, könnte man die von FHEM kommenden Sendekommandos über ein Array (ggf. im EEPROM gespeichert) in "vollwertige" Sendekommandos umwandeln. (Ein Beispiel dazu habe ich mir irgendwo notiert, aber Puh :-\...)
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

r_knipp

Zitat von: joe_re am 04 Mai 2016, 15:10:04
Entweder so (dann tut die Node-Senderseite weiter so, als wäre sie ein "Light", wir können also nur on oder off senden), oder wir nutzen die IR-Funktionalität (was mir besser gefallen würde).
Warum nur on/off? Ich meinte die Senderoutine:

void incomingMessage(const MyMessage &message) {
 
  //Determine the child device
  uint8_t child = message.sensor;
 
  //Get the relay status for the child device
  int incomingRelayStatus = message.getInt();
 
  //Emit the appropriate IR code to the child device
  iremitter.send( childIR[child].brand, incomingRelayStatus == 1 ? childIR[child].onIRcode : childIR[child].offIRcode, childIR[child].bits);
  //If sending to HD tuner, add "enter" code after preset code
  if (child == 2){
    //Don't send the enter command immediately after the number. Must wait a bit
    delay(500);
    iremitter.send (SONY,0xCBC8, 20);
  }

oder habe ich das falsch verstanden? Damit sollte sich doch ein beliebiger IR-Code senden lassen mit Hersteller, Hex-Code, Länge in Bits.
Warum er den Sensor als S_LIGHT registriert verstehe ich auch nicht.

Beta-User

#742
Zitat von: r_knipp am 04 Mai 2016, 15:38:25
Warum nur on/off? Ich meinte die Senderoutine:

Wenn ich den Code richtig deute, ist das - soweit es die von Seiten des Controllers kommenden Infos angeht - "nur" eine aufgebohrte Version eines Relays (oder Light, was praktisch dasselbe ist), das im Prinzip nur "on" und "off" (=relayStatus) kennt. Hier allerdings in der Fassung, dass mehrere Relays präsentiert werden, welche dann von "on" bzw. "off" in ein ganz konkret hinterlegtes IR-Sende-Signal übersetzt werden. Also: je präsentiertem Relay ein "on"-IR-Kommando und eines "off". (EDIT: Im Falle des "on"-Signals an den HD-... ist es eine Sequenz, die abläuft, aber immer noch hart vercoded)

Was mir vorschwebt, nutzt den Typ "IR_SEND" und geht in etwa so:
void receive(const MyMessage &message) {
  const char *irData;
  // We will try to send a complete send command from controller side, e.g. "NEC, 0x1EE17887, 32"
  if (message.type==V_IR_SEND) {
     irData = message.getString();
     Serial.println(F("Received IR send command..."));
     Serial.println(irData);
     irsend.send(irData);
     }

     // Start receiving ir again...
    irrecv.enableIRIn();
  }
}


;) abgekupfert von https://github.com/mysensors/Arduino/blob/development/libraries/MySensors/examples/HeatpumpIRController/HeatpumpIRController.ino

Kompletter, noch nicht getesteter Sketch unter https://github.com/rejoe2/Mysensors-IR (2.0.0-beta, der Schnipsel oben sollte aber auch auf der 1.5 gehen!)
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

Edi77

Hallo,

Ich hätte da noch mal eine Frage.
Das WLAN Gateway läuft ja jetzt, und ein Temperatursensor mit einem DS18B20 auch
Log auf dem COM Port

req id
send: 255-255-0-0 s=255,c=3,t=3,pt=0,l=0,sg=0,st=ok:
read: 0-0-255 s=255,c=3,t=4,pt=0,l=3,sg=0:10

send: 10-10-0-0 s=255,c=3,t=15,pt=2,l=2,sg=0,st=fail:0
send: 10-10-0-0 s=255,c=0,t=17,pt=0,l=5,sg=0,st=ok:1.5.4
send: 10-10-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:0
read: 0-0-10 s=255,c=3,t=6,pt=0,l=2,sg=0:M

id=10
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:23.5
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:23.3
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:23.1
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:23.0
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:22.9
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:22.8
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:22.7
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:22.6
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:22.5
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:22.9
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:23.0
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:22.6
send: 10-10-0-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:22.5


Und so sieht das im FHEM aus :)


2016.05.05 00:14:20 5: MYSENSORS/RAW: /10;0;1;0;0;22.5
2016.05.05 00:14:20 5: MYSENSORS Read: Rx: fr=010 ci=000 c=001(C_SET         ) st=000(V_TEMP          ) ack=0 '22.5'
2016.05.05 00:21:16 5: MYSENSORS/RAW: /10;0;1;0;0;22.9
2016.05.05 00:21:16 5: MYSENSORS Read: Rx: fr=010 ci=000 c=001(C_SET         ) st=000(V_TEMP          ) ack=0 '22.9'
2016.05.05 00:21:54 5: MYSENSORS/RAW: /10;0;1;0;0;23.0
2016.05.05 00:21:54 5: MYSENSORS Read: Rx: fr=010 ci=000 c=001(C_SET         ) st=000(V_TEMP          ) ack=0 '23.0'
2016.05.05 00:22:31 5: MYSENSORS/RAW: /10;0;1;0;0;22.6
2016.05.05 00:22:31 5: MYSENSORS Read: Rx: fr=010 ci=000 c=001(C_SET         ) st=000(V_TEMP          ) ack=0 '22.6'
2016.05.05 00:23:47 5: MYSENSORS/RAW: /10;0;1;0;0;22.5
2016.05.05 00:23:47 5: MYSENSORS Read: Rx: fr=010 ci=000 c=001(C_SET         ) st=000(V_TEMP          ) ack=0 '22.5'


Wie kann man darauf eine gute Log Datei machen für einen Plot?
Gibt es irgendwelche Parameter?                                                             
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

r_knipp

Zitat von: Edi77 am 05 Mai 2016, 00:23:06
Wie kann man darauf eine gute Log Datei machen für einen Plot?
Gibt es irgendwelche Parameter?                                                             
Daraus gar nicht. Du musst doch in deinem MySensors Device ein Reading für die Temperatur haben. Das nutzt du für ein Log.


define log_temp filelog log_temp-%y-%m-%d.log ms_device:.temp

So in etwa sollte das gehen. Dann wird jeden Tag ein neues Logfile angelegt. Schau dir mal die Commandref zu FILELOG an.

Beta-User

Zitat von: r_knipp am 04 Mai 2016, 11:47:42
Ich habe die bei MySensors empfohlene Sender/Empfänger-Kombi. War am einfachsten anzuschließen.
Ich habe aber auch noch TSOP1738 rumliegen. Könnte ich auch mal ausprobieren. Aber leider erst nächste Woche.

Zwischenstand, nachdem ich jetzt auch einen funktionierenden Empfänger habe: Die 000000 und fffffff sind m.E. repeat bzw. "0" codes des NEC-Protokolls, hatte den Effekt ebenfalls und auch selten ein Decode für die Yamaha-Receiver.

Habe eben auf Basis der von https://github.com/ElectricRCAircraftGuy stark überarbeiteten IRLib (und 2.0.0-beta) einen aktuelisierten Sketch nach https://github.com/rejoe2/Mysensors-IR/tree/master/IrSensor hochgeladen, der neben dem reinen Code auch die Protokoll-Infos schickt (allerdings "1" für NEC, "3" für RC5 etc..

In Senderichtung kann man zwar auch einen String senden (also dieselbe Info), allerdings wandelt die Node das nicht automatisch in sinnvolle Befehlscodes... Da ist also noch einiges zu tun, aber es sollte nicht unlösbar sein (mache jetzt aber erst mal Pause).
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

r_knipp

Zitat
Die 000000 und fffffff sind m.E. repeat bzw. "0" codes des NEC-Protokolls, hatte den Effekt ebenfalls und auch selten ein Decode für die Yamaha-Receiver.
Also bei wurden die 0 und f erzeugt wenn ich den Empfänger vor den Halogenlampen geschwenkt habe. Da brauchte ich nicht mal eine Taste auf der FB drücken.

Edi77

#747
Hallo,

Wie ein normales reading geht ist mir schon klar nur nicht bei mysensors
Meine config für diesen Sensor sieht so aus


define MYSENSOR_10 MYSENSORS_DEVICE 10
attr MYSENSOR_10 IODev MySensorsGateway
attr MYSENSOR_10 mapReading_temperature 0 temperature
attr MYSENSOR_10 mode node
attr MYSENSOR_10 room MySensors
attr MYSENSOR_10 verbose 5
attr MYSENSOR_10 version 1.5.4
# define FileLog_MYSENSOR_10 FileLog ./log/MYSENSOR_10-%Y.log MYSENSOR_10
# attr FileLog_MYSENSOR_10 logtype text
# attr FileLog_MYSENSOR_10 room MySensors


Mir ist noch nicht ganz klar wo er mapReading temperature 0 temerature hin schreibt, den das ist ja der Wert den ich brauche ..............

Edit

Hat sich erledigt, funktioniert
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

r_knipp

Zitat von: joe_re am 05 Mai 2016, 11:48:05
Habe eben auf Basis der von https://github.com/ElectricRCAircraftGuy stark überarbeiteten IRLib (und 2.0.0-beta) einen aktuelisierten Sketch nach https://github.com/rejoe2/Mysensors-IR/tree/master/IrSensor hochgeladen, der neben dem reinen Code auch die Protokoll-Infos schickt (allerdings "1" für NEC, "3" für RC5 etc..
OK, habe auch mal auf 2.0 beta upgedated, damit ich da auf dem gleichen Stand bin.

Mal ne Frage zu deinem Sketch.
Ich dachte in Arduino wird erst die setup() ausgeführt und dann die loop(). Wie wird denn die presentation() ausgeführt. Oder wird pauschal alles einmal ausgeführt, was vor der loop() kommt?


Edi77

Hallo,

spiele immer noch mit dem MQ-135 herum.
Der MQ-135 soll ja CO2 SO2 NH3 NH4 CH3 CO messen können.

Hier gibt es ein schöne Sketch für einige Gas Sensoren, läuft aber wohl nicht auf einem Nano.
https://github.com/empierre/arduino/blob/master/AirQuality-Multiple_Gas_Sensor1_4.ino

Das hier läuft auch, liefert aber nur CO2
https://github.com/GeorgK/MQ135

genau so wie dieses hier
https://github.com/empierre/arduino/blob/master/AirQuality-MQ135.ino

Für mich wäre aber noch NH3 interessant und die anderen Werte.
Hat das schon mal jemand hin bekommen?
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D