FHEM+Arduino Firmata via Ethernet+RF 433 Mhz Sender+Baumarkt-Funksteckdosen

Begonnen von blueberry63, 08 April 2014, 16:16:31

Vorheriges Thema - Nächstes Thema

blueberry63

Hallo Christian,

prima, dass die Ansteuerung der Funkmodule vielleicht bald in den Standard kommt (das sehe ich doch richtig, oder?).

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Christian.

In den offiziellen Firmata-Standard zwar nicht, aber hoffentlich ins ConfigurableFirmata-Release und in FHEM, sodass ein zusätzliches Archiv überflüssig wird. Sobald Norbert Zeit dafür findet, wird es sicher weitergehen. Bis es soweit ist, ist das Archiv vom 23.08. auch eine Lösung, die zu keinen Konflikten mit FHEM-Updates führt.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee

golem

Hallo,

habe die Version vom 23.08. auf dem Arduino. Und die entsprechenden Dateien ins FHEM kopiert.
Beim Starten bekomme ich folgende Meldung


2014.10.02 22:03:16 5: FRM:>ff
2014.10.02 22:03:21 4: Connection accepted from FRM:192.168.0.6:1035
2014.10.02 22:03:21 5: FRM:>ff
2014.10.02 22:03:24 3: querying Firmata Firmware Version
2014.10.02 22:03:24 5: FRM:>f079f7
2014.10.02 22:03:24 5: FRM:<f079020652004300530077006900740063
2014.10.02 22:03:24 5: FRM:<0068004600690072006d006100740061002e0069006e006f00f7
2014.10.02 22:03:24 3: Firmata Firmware Version: RCSwitchFirmata.ino V_2_06
2014.10.02 22:03:24 5: FRM:>f069f7
2014.10.02 22:03:24 5: FRM:>f06bf7
2014.10.02 22:03:24 5: FRM:<f07155006e00680061006e0064006c0065006400200073007900730065007800200063
2014.10.02 22:03:24 5: FRM:<006f006d006d0061006e006400f7f06c7f7f0001010107010a010b017f0001010107010a010b017f7f0001010107010a017f0001010107010a017f0001010107010a017f0001010107010a017f000101010701
2014.10.02 22:03:24 3: received String_data: Unhandled sysex command
2014.10.02 22:03:24 5: FRM:<0a017f7f7f7f7f0001010107010a017f0001010107010a017f0001010107010a017f0001010107010a017f0001010107010a017f0001010107010a017ff7
2014.10.02 22:03:26 5: FRM:>f07a6807f7


Gruß Denis

So habs mit Verbose 5 nochmal gemacht
Pi - Max-Lan - 8x max Ht -3x Max WT - Max Fk -modbus umg103- 2x Arduino mit Firmata Ethernet- ws300 - 433Mhz Sender Empfänger - 7x 1wire ds1820

Christian.

Hallo Denis,

laut Log sendet an FHEM Deinen Arduino die Kommandos ANALOG_MAPPING_QUERY und CAPABILITY_QUERY und erhält die Antwort Unhandled sysex command. Die Kommandos haben mit RCSwitch nichts zu tun. Ich vermute deshalb entweder, dass Du die RCSwitchFirmata.ino noch nicht passend konfiguriert hast (durch Ein- und Auskommentieren der für Dich passenden Features), oder dass der Arduino vielleicht zuwenig freien Speicher hat und sich deshalb merkwürdig verhält.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee

papa

Hallo Christian,

ich habe es nun endlich mal geschaft, die geänderte Firmata und die Module einzuspielen. Dabei habe ich nach Anlegen eines FRM_RCOUT folgende Fehlermeldungen im Log, wenn die 1Wire Temperatursensoren ihre Werte liefern.


Use of uninitialized value $pin in array element at ./FHEM/15_FRM_RC.pm line 179.


Die Temperatur wird dann auch nicht mehr aktualisiert.

Ohne jetzt tiefer in den Code gesehen zu haben, vermute ich, dass Dein Modul versucht, die 1Wire Nachrichten auszuwerten und dabei der Fehler auftritt.

Jetzt doch mal in den Code geschaut ... Ich denke, Du musst erst mal prüfen, ob das Command überhaupt für FRM_RC ist und dann den Rest im Observer ausführen.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Christian.

Hallo papa,

ja, das könnte möglich sein, wenn der SysEx-Observer auch für OneWire-Signale aufgerufen wird. Ich selbst habe neben den Funk-Komponenten nur digitale Eingänge, da würde dieses Problem gar nicht auftreten.

Ich sehe es mir an. Ich hoffe, ich komme am Wochenende dazu.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee

ntruchsess

while (!asleep()) {sheep++};

Christian.

Hallo papa,

ich habe die Implementierung wie folgt geändert:

  • Der Observer führt die Verarbeitung nur durch, wenn das SysEx-Kommando dem RESERVED_COMMAND entspricht (also z.B. nicht mehr für 1-Wire).
  • Die Sysex-Message wird nicht mehr verändert und kann deshalb auch von nachfolgenden Komponenten verarbeitet werden.

Bitte teste, ob das Dein Problem behebt.

Edit: Das ursprünglich an diesen Beitrag angehängte Archiv RCSwitchFirmata-2014-11-01.zip enthält zueinander inkompatible Dateien. Die Version RCSwitchFirmata-2014-11-02.zip des nächsten Beitrags behebt diesen Fehler.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee

blueberry63

Hallo Christian,

ich habe endlich mal wieder etwas Zeit, um mit FHEM weiter zu machen und habe direkt die neue Version vom 1.11. getestet und die 3 Dateien in FHEM eingespielt:

15_FRM_RC.pm
20_FRM_RCIN.pm
20_FRM_RCOUT.pm


Meldung auf der Konsole:

Starting fhem...
Subroutine FRM_RCIN_Initialize redefined at ./FHEM/20_FRM_RCIN.pm line 27, <$fh> line 329.
Not an ARRAY reference at ./FHEM/10_FRM.pm line 496.


LOG:

2014.11.02 19:05:32 1: reload: Error:Modul 20_FRM_RCIN deactivated:
Too many arguments for main::FRM_RC_Init at ./FHEM/20_FRM_RCIN.pm line 47, near "$args)"

2014.11.02 19:05:32 0: Too many arguments for main::FRM_RC_Init at ./FHEM/20_FRM_RCIN.pm line 47, near "$args)"


2014.11.02 19:05:33 1: configfile: Cannot load module FRM_RCIN

2014.11.02 19:05:39 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.
2014.11.02 19:05:39 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.
2014.11.02 19:05:42 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.


FHEM startet jetzt nicht mehr :-(

Hast Du eine schnelle Abhilfe?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Christian.

Hallo blueberry63,

ich habe ins Archiv vom 01.11. offenbar nur das aktualisierte FRM_RC-Modul gepackt und die beiden anderen Module in der alten Version belassen. Die angehängte Version vom 02.11. enthält jetzt auch die passenden Module FRM_RCIN und FRM_RC_OUT.

Falls es weitere Probleme gibt und Du auf eine laufende Version angewiesen bist, kannst Du auch weiterhin mit der Version vom 23.08. arbeiten.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee

blueberry63

Mit den neuen Dateien läuft FHEM wieder und es gibt auch keine Fehlermeldungen mehr. Allerdings schalten die Steckdosen auch nicht :-(

Gibt es noch etwas auf der Arduino-Seite zu beachten? Ich habe zwar die entsprechenden Dateien ins Arduino-LIB-Verzeichnis, allerdings habe ich meine alte INO-Datei genommen und nach Kompilierung den NANO neu betankt.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Christian.

Zitat von: blueberry63 am 02 November 2014, 22:57:25
Gibt es noch etwas auf der Arduino-Seite zu beachten?

Nein, der Arduino-Teil ist unverändert geblieben.

Schau doch mal, ob Dein Device so aussieht, wie Du es erwartest. Ist z.B. das IODev gesetzt? Steht was im Log? Falls Du sicher bist, dass Deine Konfiguration in Ordnung ist, setze das verbose-Attribut hoch und poste das Log.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee

blueberry63

Hallo Christian,

folgendes kann ich mitloggen, wenn ich eine Steckdose einschalte:


2014.11.03 16:19:24 5: Cmd: >set STD_I1_FLURU on<
2014.11.03 16:19:24 2: IT set STD_I1_FLURU on
2014.11.03 16:19:24 1: PERL WARNING: Use of uninitialized value $command in concatenation (.) or string at ./FHEM/15_FRM_RC.pm line 264.
2014.11.03 16:19:24 4: SENDER433n: Sending  40 7 64 0 21
2014.11.03 16:19:24 1: PERL WARNING: Use of uninitialized value in pack at FHEM/lib/Device/Firmata/Protocol.pm line 382.
2014.11.03 16:19:24 1: PERL WARNING: Use of uninitialized value $sysex_data[0] in pack at FHEM/lib/Device/Firmata/Protocol.pm line 382.
2014.11.03 16:19:24 1: PERL WARNING: Use of uninitialized value in pack at FHEM/lib/Device/Firmata/Protocol.pm line 382.
2014.11.03 16:19:24 5: FRM:>000028074000540000
2014.11.03 16:19:24 5: SW: 000028074000540000
2014.11.03 16:19:24 4: Answer from SENDER433n: raw => isF00000000FFF


Hilft Dir das weiter?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Christian.

Hmmm... die erste Warnung deutet darauf hin, dass die Registrierung von FRM_RCOUT im Firmata-Modul nicht stattgefunden hat; das passiert aber automatisch beim define. Das ist schonmal seltsam. Die Firmata-Nachricht beginnt mit 00 und nicht mit F0 - die Nachricht ist also keine SysEx-Nachricht. Das ist ebenfalls seltsam. Deshalb vermute ich das Problem in Deiner Installation oder Konfiguration.

Ich habe gerade eine frische Test-Installation von FHEM 5.5 aufgesetzt und auf den neuesten Stand aktualisiert. Nach dem Kopieren der FRM_RC-Module hat das Senden und Empfangen tadellos funktioniert. Probier das doch auch mal.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee

blueberry63

Hallo Christian,

ich habe nochmal ein "update force" ausgeführt und nach einem "shutdown restart" sehe ich folgende Zeilen im LOG:


2014.11.04 13:43:16 3: querying Firmata Firmware Version
2014.11.04 13:43:16 3: Firmata Firmware Version: confFirmNanoRc5.ino V_2_07
2014.11.04 13:43:16 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.
2014.11.04 13:43:16 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.
2014.11.04 13:43:19 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.
2014.11.04 13:43:19 1: PERL WARNING: Use of uninitialized value $buf in unpack at ./FHEM/10_FRM.pm line 618.


Die "10_FRM.pm" ist laut Kopfzeile vom 23.05.2014. Ist das richrtig?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower