FHEMduino

Begonnen von mdorenka, 06 Dezember 2013, 15:34:39

Vorheriges Thema - Nächstes Thema

kaihs

Zitat von: Sidey am 19 Oktober 2014, 16:40:53
Das Auriol Protokoll wurde ja schon mal in einem eigenen Zweig implementiert.

Ich habe ein anderes Auriol Protokoll implementiert, das hat 36 Bits. Das sind zwei Sensoren (Regen-und Kombisensor mit Temperatur und Windwerten) mit insgesamt vier unterschiedlichen Datenpaketen.
Daher sind die Änderungen in 14_FHEMduino_Env.pm auch etwas umfangreicher.

Ich werde mal schauen, ob ich das wieder in einzelne pull-Requests zerlegen kann. Dafür muss ich mich erstmal in git einlesen.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

pejonp

Zitat von: Sidey am 19 Oktober 2014, 10:02:47
...
Bist Du dir sicher, dass der Sync bei dem Protokoll so lange ist und dass da nicht mehrere Pulse übertragen werden?
....

Hallo Sidey,

ich habe einmal direkt am Data-Pin des 433MHz Senders gemessen und auch gleichzeitig per Funk. Es werden 3 Nachrichten übertragen. Bei der 1. Nachricht stimmt bei mit das SYNC noch nicht, die 2. und 3. Nachricht wird aber erkannt. Wobei sich bei der 3. Nachricht  eine Stelle ändert. Ich hänge einmal den Sketch und meine Doku an.

Tschüss Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

timbo

Hallo,

mir wurde heute mein Arduino Nano geliefert, den ich gerade mit FHEMduino zum Laufen gebracht habe. Meine Intertechno Funkempfänger können einwandfrei geschaltet werden.

Ich habe mir allerdings noch ein günstiges Mumbi-Steckdosen Set gekauft, das leider nicht auf die Befehle reagiert. Es handelt sich hierbei um selbstlernende Steckdosen, die aber scheinbar ebenfalls das Intertechno-Protokoll verwenden. FHEM erkennt die Fernbedienung einwandfrei und hat per autocreate einen Eintrag erstellt. Ein- und Ausschaltvorgänge über die Fernbedienung werden richtig erkannt. Auf das Senden über FHEM reagieren die Steckdosen allerdings nicht.

Hier ein Logauszug beim Schalten über die Fernbedienung:


2014.10.20 21:15:30 5: FHEMduino/RAW: /I
2014.10.20 21:15:30 5: FHEMduino/RAW: I/R111
2014.10.20 21:15:30 5: FHEMduino/RAW: IR111/5412
2014.10.20 21:15:30 5: FHEMduino/RAW: IR1115412/_31
2014.10.20 21:15:30 5: FHEMduino/RAW: IR1115412_31/4

2014.10.20 21:15:30 5: Arduino: IR1115412_314
2014.10.20 21:15:30 5: Arduino dispatch IR1115412_314
2014.10.20 21:15:30 5: FingerprintFn Message: Name: Arduino  und Message: IR1115412_314
2014.10.20 21:15:31 3: Message: IR1115412 Basedur: 314
2014.10.20 21:15:31 5: FHEMduino_PT2262 Message Housecode: 0F0F0 Buttoncode: 0FF0F actioncode F0
2014.10.20 21:15:31 5: Get button return/result: ID: 0F0F00FF0FDEVICE: 10_13 ACTION: off
2014.10.20 21:15:31 3: Parse: Device: 10_13 Code: 0F0F00FF0F Basedur: 314 Action: off
2014.10.20 21:15:31 5: FHEMduino_PT2262 actioncode: off
2014.10.20 21:15:31 5: Triggering FHEMduino_PT2262_10_13 (2 changes)
2014.10.20 21:15:31 5: Notify loop for FHEMduino_PT2262_10_13 off
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 off -> off
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 basedur: 314 -> basedur: .*
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 state: off -> state: off
2014.10.20 21:15:31 5: Arduino dispatch IR1115412_314
2014.10.20 21:15:31 5: FingerprintFn Message: Name: Arduino  und Message: IR1115412_314
2014.10.20 21:15:31 3: Message: IR1115412 Basedur: 314
2014.10.20 21:15:31 5: FHEMduino_PT2262 Message Housecode: 0F0F0 Buttoncode: 0FF0F actioncode F0
2014.10.20 21:15:31 5: Get button return/result: ID: 0F0F00FF0FDEVICE: 10_13 ACTION: off
2014.10.20 21:15:31 3: Parse: Device: 10_13 Code: 0F0F00FF0F Basedur: 314 Action: off
2014.10.20 21:15:31 5: FHEMduino_PT2262 actioncode: off
2014.10.20 21:15:31 5: Triggering FHEMduino_PT2262_10_13 (2 changes)
2014.10.20 21:15:31 5: Notify loop for FHEMduino_PT2262_10_13 off
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 off -> off
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 basedur: 314 -> basedur: .*
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 state: off -> state: off
2014.10.20 21:15:31 5: FHEMduino/RAW: /IR1115412_314

2014.10.20 21:15:31 5: Arduino: IR1115412_314
2014.10.20 21:15:31 5: Arduino dispatch IR1115412_314
2014.10.20 21:15:31 5: FingerprintFn Message: Name: Arduino  und Message: IR1115412_314
2014.10.20 21:15:31 3: Message: IR1115412 Basedur: 314
2014.10.20 21:15:31 5: FHEMduino_PT2262 Message Housecode: 0F0F0 Buttoncode: 0FF0F actioncode F0
2014.10.20 21:15:31 5: Get button return/result: ID: 0F0F00FF0FDEVICE: 10_13 ACTION: off
2014.10.20 21:15:31 3: Parse: Device: 10_13 Code: 0F0F00FF0F Basedur: 314 Action: off
2014.10.20 21:15:31 5: FHEMduino_PT2262 actioncode: off
2014.10.20 21:15:31 5: Triggering FHEMduino_PT2262_10_13 (2 changes)
2014.10.20 21:15:31 5: Notify loop for FHEMduino_PT2262_10_13 off
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 off -> off
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 basedur: 314 -> basedur: .*
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 state: off -> state: off
2014.10.20 21:15:31 5: Arduino dispatch IR1115412_314
2014.10.20 21:15:31 5: FingerprintFn Message: Name: Arduino  und Message: IR1115412_314
2014.10.20 21:15:31 3: Message: IR1115412 Basedur: 314
2014.10.20 21:15:31 5: FHEMduino_PT2262 Message Housecode: 0F0F0 Buttoncode: 0FF0F actioncode F0
2014.10.20 21:15:31 5: Get button return/result: ID: 0F0F00FF0FDEVICE: 10_13 ACTION: off
2014.10.20 21:15:31 3: Parse: Device: 10_13 Code: 0F0F00FF0F Basedur: 314 Action: off
2014.10.20 21:15:31 5: FHEMduino_PT2262 actioncode: off
2014.10.20 21:15:31 5: Triggering FHEMduino_PT2262_10_13 (2 changes)
2014.10.20 21:15:31 5: Notify loop for FHEMduino_PT2262_10_13 off
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 off -> off
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 basedur: 314 -> basedur: .*
2014.10.20 21:15:31 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 state: off -> state: off
2014.10.20 21:15:31 4: Connection accepted from FHEMWEB:192.168.117.35:55288
2014.10.20 21:15:31 4: HTTP FHEMWEB:192.168.117.35:55288 GET /fhem/images/default/off.png


Folgende Einträge stehen im Log beim Senden über FHEM:

2014.10.20 21:19:44 5: Triggering wz_xbmc (2 changes)
2014.10.20 21:19:44 5: Notify loop for wz_xbmc skin: Confluence(skin.confluence)
2014.10.20 21:19:44 4: eventTypes: XBMC wz_xbmc skin: Confluence(skin.confluence) -> skin: Confluence(skin.confluence)
2014.10.20 21:19:44 4: eventTypes: XBMC wz_xbmc fullscreen: off -> fullscreen: off
2014.10.20 21:19:44 5: XBMC received message:{"error":{"code":-32100,"message":"Failed to execute method."},"id":3605,"jsonrpc":"2.0"}
2014.10.20 21:19:44 5: Tail:
2014.10.20 21:19:44 4: Connection accepted from FHEMWEB:192.168.117.35:55301
2014.10.20 21:19:44 4: HTTP FHEMWEB:192.168.117.35:55301 GET /fhem/images/default/off.png
2014.10.20 21:19:44 4: Connection accepted from FHEMWEB:192.168.117.35:55302
2014.10.20 21:19:44 4: HTTP FHEMWEB:192.168.117.35:55302 GET /fhem/images/default/on.png
2014.10.20 21:19:53 4: HTTP FHEMWEB:192.168.117.35:55301 GET /fhem?XHR=1&cmd.FHEMduino_PT2262_10_13=set%20FHEMduino_PT2262_10_13%20off&room=FHEMduino_PT2262
2014.10.20 21:19:53 5: Cmd: >set FHEMduino_PT2262_10_13 off<
2014.10.20 21:19:53 2: FHEMduino_PT2262 set FHEMduino_PT2262_10_13 off IO_name:Arduino
2014.10.20 21:19:53 5: Messsage an IO senden Message raw: is0F0F00FF0FF0314
2014.10.20 21:19:53 5:  : command for gets:  is0F0F00FF0FF0314
2014.10.20 21:19:53 5: SW: is0F0F00FF0FF0314
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): i
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): s
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): F0
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): F
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): 00
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): F
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): F
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): 0F
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): F
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): 03
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): 1
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer): 4
2014.10.20 21:19:53 5: FHEMduino/RAW (ReadAnswer):

2014.10.20 21:19:53 5:  : received message for gets: isF0F00FF0FF0314

2014.10.20 21:19:53 5: FHEMduino_PT2262 IODev device didn't answer is command correctly:   raw => isF0F00FF0FF0314
2014.10.20 21:19:53 5: Triggering FHEMduino_PT2262_10_13 (1 changes)
2014.10.20 21:19:53 5: Notify loop for FHEMduino_PT2262_10_13 off
2014.10.20 21:19:53 4: eventTypes: FHEMduino_PT2262 FHEMduino_PT2262_10_13 off -> off


Hat jemand einen Rat für mich, wie ich auch die Mumbi-Steckdosen schalten kann? Alternativ: Lohnt sich der Aufwand? Ich könnte die Steckdosen vermutlich noch zurückschicken.

Sidey

Hallo Timbo,

Welche Version hast Du installiert?
Welche Quellen hast Du verwendet?
Grundsätzlich sollte es kein Problem sein die Steckdosen zu schalten, wenn der Empfang klappt.
Da ist vielleicht irgendwo ein kleines Detail das jetzt nicht passt.

Grüße Sid
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

timbo

Hallo Sid,

welche Version wovon? :)

Ich habe FHEM 5.5 installiert und heute noch ein Update durchgeführt.
Den FHEMduino-Sketch und die FHEM-Module habe ich aus den jeweiligen git-Repos [1, 2] geholt, jeweils Master-Branch. An dem Sketch habe ich nichts geändert.

[1] https://github.com/mdorenka/fhemduino
[2] https://github.com/mdorenka/fhemduino_modules

Macht es Sinn, etwas mit den Werten der Baseduration (es wurde von der Fernbedienung 314 empfangen) oder der ITrepetion zu spielen?

timbo

Ich weiß jetzt nicht, ob das irgendeine Aussagekraft hat, aber die LED der Mumbi-Fernbedienung blinkt beim Schalten deutlich öfter als die Intertechno. :)

Johannes

Hallo,

Ich wollte mich demnächst mal daran machen, die Revolt Energiemess-Steckdose (NC-5461) zu implementieren. Glücklicherweise sind ja schon Teile für die CUL Firmware bekannt (http://forum.fhem.de/index.php/topic,14292.0.html)
Ich bin jetzt aber noch nicht ganz sicher, wie das beste Vorgehen für die Implementation eines neuen Protokolls ist, das Wiki hilft da leider auch nicht.
Es wäre super, wenn mir jemand ein paar Tipps geben kann, wie man am besten vorgeht, z.B
1.) Kann ich den "unbekannten" am FHEMduino ankommenden Traffic im Eventlog von FHEM sehen? Wenn nein, wo / wie dann?
2.) Welche Dateien müssen angepackt werden, um ein neues Protokoll in FHEMduino zu integrieren? (sketch.ino, 00_FHEMduino.pm, welcher Branch, etc.)

Vielleicht kann ja jemand mal kurz sein vorgehen beschreiben, wie man unbekannte Protokolle am besten debuggt und implementiert?
Danke im Voraus!

Sidey

Hallo Johannes,

Zitat von: Johannes am 22 Oktober 2014, 19:38:39
Es wäre super, wenn mir jemand ein paar Tipps geben kann, wie man am besten vorgeht, z.B
1.) Kann ich den "unbekannten" am FHEMduino ankommenden Traffic im Eventlog von FHEM sehen? Wenn nein, wo / wie dann?
Nein, den siehst Du da nicht, da de Fhemduino diesen gar nicht erkennt. Eventuell kann das mal eine zukünftige Version.

Zitat von: Johannes am 22 Oktober 2014, 19:38:39
2.) Welche Dateien müssen angepackt werden, um ein neues Protokoll in FHEMduino zu integrieren? (sketch.ino, 00_FHEMduino.pm, welcher Branch, etc.)
Das kommt ein bisschen drauf an. Das einfache erst mal. Du nimmst die Version aus dem Master als Basis. Änderungen laufen dann in einen eigenen Zweig. Am Ende wird dann gemerged.
Was zu ändern ist, hängt halt auch ein bisschen vom Protokoll ab. Im Fhemduino sind derzeit, historisch bedingt, verschiedene Methoden implementiert Protokolle zu dekodieren.
Ich arbeite gerade an einem generellen Ansatz. Von der Idee, ein Decoder der "nur" noch mit den passenden Parametern versorgt werden muss.
Dieser Baustein ist allerdings noch nicht fertig. Er hat zwar in Teilen schon funktioniert, aber ich ändere momentan noch viel daran herum, so dass ich auch heute keine stabile Basis bereitstellen könnte. Grundidee ist es aber, alle Protokolle nach einem einheitlichen und leicht erweiterbaren Modell zu dekodieren.

Zitat von: Johannes am 22 Oktober 2014, 19:38:39
Vielleicht kann ja jemand mal kurz sein vorgehen beschreiben, wie man unbekannte Protokolle am besten debuggt und implementiert?

1. Du musst erst mal herausfinden, wie das Protokoll aussieht. Womit beginnt die Sequenz, was ist 0, was ist 1 und womit wird das Ende der Übertragung signalisiert. Das geht durch Aufzeichnen der Signale, welche der Empfänger empfängt.
2. Dann kannst Du überlegen nach welchem Vorbild bereits vorhandener Decoder Du ergänzt. Auf alle Fälle muss in den Perl Modulen und im Arduino Code etwas ergänzt werden.
Wo können wir dir besser beantworten, wenn Du 1. abgeschlossen hast. Wenn Du Hilfe brauchst, wie Du das Rauschen von den Daten unterscheiden sollst schreib mir eine PM.
3. Jetzt kommt der spannende Teil, müssen die einzelnen Bits im FHEM noch interpretiert werden. Das geht halt gut durch ausprobieren. Google, etc.

Grüße Sid

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Johannes

Hi,
Danke erstmal für die Antworten.
Jetzt müsst ich erstmal nur noch wissen, wie ich den Funkverkehr der Steckdose "sehen" kann.
Muss ich da mit serieller Konsole zum Arduino arbeiten o.ä.? Mein erster Arduino ist noch auf dem Weg zu mir, daher die blöden Fragen...

Wzut

Der Empfänger in der Logilink Wetterstation ist wirklich gut , kein Vergleich zu meinem ersten Empfänger.
Allerdings ist wohl auch ein Unterschied im Timing was den Effekt hatte das beim Wechsel vom Logilink auf den alten Empfänger nicht ein Telegramm meiner Pearl bzw. Logilink Sensoren empfangen wurde. Ich habe daraufhin eine Messreihe von je 100 Telegrammen mit jedem Empfänger gemacht ( 2 x PEARL und 1 x Logilink  als Sender) und das ist das Ergebnis ( Werte von timings[0] ) :

Logilink     min Start : 9172  max Start : 9216   Durchschnitt : 9193
anderer     min Start : 9076  max Start : 9128   Durchschnitt : 9102

um beide Sensoren mit beiden Empfängern ordenlich zu empfangen schlage ich vor in der temphum.cpp im Abschnitt receiveProtocolNC_WS zwei  Parameter wie folgt anzupassen :


#define NCWS_SYNC   9100
#define NCWS_GLITCH 150

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Sidey

Hallo Wzut,

ich habe auch schon mit mehreren Empfängern getestet, aber noch keine derartigen Unterschiede festgestellen können.

1) Wie Hast Du die Pulslänge denn gemessen? Über die Debug Ausgabe im Fhemduino?
2) Welchen Arduino hast Du verwendet, immer den gleichen?
3) Müssten sich dann die Werte für low und high Puls auch unterscheiden.

Habe einen Logilink Sender und bin dabei die Decoder Routinen zu standardisieren.
Ich meine festgestellt zu haben, dass der Logilink mit einem Basistakt von 540 arbeitet. Allerdings gibt es eine Übertragung von mehreren bei dem davon abweicht. Bei mir auf 9072 :)

Grüße Sven


Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Wzut

1.) ja mit 115200 Baud  und alle sonstigen Serial.print Aufrufe auskommentiert
2.) ja immer den gleichen - Mega2560
3.) bestimmt unterscheiden die sich auch was mir aber relativ egal war da die 0/1 Bits ja mit den vorgegebenen Werten richtig dekodiert wurden,
nur beim Sync lief es halt schief
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

speddy99

Moin Moin,
ich habe da mal wieder ein kleines Problem  :D

ich habe einen chinesischen Fensterkontakt an meine Gasuhr gebastelt. Funktioniert auch soweit, wird vom FHEMduino als PT2262 erkannt.
Leider schickt dieser Sender nur ein "on" Signal.
Ich suche jetzt eine Möglichkeit nach 10 Sekunden wieder auf off zu schalten. Dann könnte der HourCounter wunderbar meinen Gasverbrauch mitloggen.
In meinem jungendlichen Leichtsinn habe ich das dann mit "set gas on-for-timer 10" versucht. Das funktioniert nicht.
Vieleicht hat ja von euch jemand einen Tip.

Falls das nicht möglich ist habe ich noch eine zweite Idee.
Es gibt ja noch möglichkeit einen reedkontakt direkt am Raspi anzuschliessen, das möchten ich aber vermeiden da ich dann auf diese Hardware festeglegt wäre.
Ist es möglich an den arduino nano dafür zu nutzen und zusätzlich zum FHEMduino Zeug noch 2 Eingänge abzufragen?

gruss Michael
Raspberry Pi Ver.3 16GB SD, HM Lan,  6* HM CC RT DN 3* HM SEC SC 2
1-Wire 5*DS18B20 direkt am Raspi
Signalduino,8*Intertechno Steckdosen,4*WS0002 Feuchtefühler
WEMOS D1 Mini mit Led´s Statusbildschirm

Sidey

Hallo Michael,

Ich hab mir vor wenigen Tagen selbiges gedacht.
Ich habe aber den reedkontakt noch nicht.

Folgendes habe ich mir gedacht:
Reedkontakt an einen Arduino. Das Abfragen kann man mit einem Interrupt machen.

Wenn der Arduino dann den Interrupt auslöst, wollte ich eine Funkmeldung absenden, welche der Fhemduino empfängt.

Grundsätzlich kannst Du das auch direkt am Fhemduino anschließen und den Reedkontakt über einen Interrupt auslesen.
Zum FHEM hin müsste aber ein neues Gerät definiert werden.

Grüße Sven
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

CaptainHook

Hi,
Ich brauchte etwas ähnliches für meinen Bewegungsmelder

define MotionDetector dummy

define Motion notify MD_Eingang:motion {{fhem "set MotionDetector 1"};;{fhem "define MotionDetectorSet0 at +00:00:50 set MotionDetector 0"}}

Das solltest du problemlos adaptieren können
Gruß Stephan

Gesendet von meinem Galaxy Tab 4 LTE mit Tapatalk

Lenovo M53 ThinkCentre 10DC | Docker | SolarEdge SE10K + SE5000H + Energy Bank 10KWh | EspEasy | Tasmota | Hue | Alexa | uvm.