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

Christian.

Irgendwie ist es wie verhext... bei mir geht es auch nicht mehr: RCSwitch funktioniert, aber in RCInputFirmata liefert RCSwitch->available() immer false. Ich muss mir das nochmal in Ruhe ansehen, das kann ich aber erst in den nächsten Tagen tun. Sorry.
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

Zitat von: Christian. am 19 Mai 2014, 17:04:35
@Norbert
Sender & Empfänger bei eBay. Die günstigsten Steckdosen gibt's vermutlich bei Pollin.

danke, gleich mal geordert. Sonst rede ich bei dem Thema hier wie der Blinde von der Farbe ;-)

Gruß,

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

Christian.

@Bernd
Versuch bitte mal die angehängte ConfigurableFirmata.ino. Bei mir funktioniert der Empfang jetzt wieder, sofern DigitalOutputFirmata nicht eingebunden wird. Was dahinter steckt, ist mir unklar, aber immerhin lässt sich das Problem reproduzieren.
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

Bastelbernd

Hallo Christian,
habe in der .ino das mal so geändert
  // pins with analog capability default to analog input
  // otherwise, pins default to digital output
  for (byte i=3; i < TOTAL_PINS; i++) {
    if (IS_PIN_ANALOG(i)) {
#ifdef AnalogInputFirmata_h
      // turns off pullup, configures everything

dann gehts auch mit der DigitalOutputFirmata. Ich kann damit erst mal leben.
Prima Arbeit  :D

Gruß Bernd
FHEM auf Server mit Mainboard ASRock J3160B,Gehause Mini ITX E-3002+ SSD
Viessmann(optolink) HM-CFG-USB(HMLAN), PoKeys57E
Jeelik(Arduino)+LaCrosse, Nextion
Firmata+Arduino+1Wire+2xDS2423+IN+OUT
Electrolama zig-a-zig-ah!,Zigbee2MQTT

blueberry63

Ich kann mit der letzten INO nun auch Erfolg vermelden. GENIAL!  :D

Danke
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

blueberry63

Was mir heute noch im LOG aufgefallen ist: nach einem "shutdwon restart" kommen folgende Meldungen für  alle neuen IT Devices:

Beispiel:

No I/O device found for STD_D1


Die Steckdose kann einwandfrei gesteuert werden

...und wurde folgendermassen angelegt:

define ARD433 FRM 3030 global

define SENDER433 FRM_RCOUT 7
attr SENDER433 IODev ARD433
attr SENDER433 defaultBitCount 24

define STD_D1 IT 000FFFFF0F 0F F0
attr STD_D1 IODev SENDER433


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: Christian. am 20 Mai 2014, 07:55:09
Was dahinter steckt, ist mir unklar, aber immerhin lässt sich das Problem reproduzieren.

Ich habe das Problem jetzt gefunden und gelöst. RCInputFirmata setzt den Pinmode des Arduino nicht auf INPUT. Deshalb funktioniert der Empfang nur, falls kein anderes Feature den Pinmode setzt. Der Befehl Firmata.setPinMode(i, OUTPUT) in ConfigurableFirmata.systemResetCallback() führt aber dazu, dass beim Reset des Arduino für alle DigitalOutput-fähigen Pins der Pinmode auf OUTPUT gesetzt wird. Ich werde das anpassen.

Für Ungeduldige: Zeile 135 von RCInputFirmata.cpp muss von
RCSwitch *receiver = receivers[pin];
geändert werden nach

pinMode(PIN_TO_DIGITAL(pin), INPUT);
RCSwitch *receiver = receivers[pin];
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

Christian.

Das angehängte Archiv enthält alle zuvor beschriebenen Fehlerkorrekturen.
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

Christian.

Zitat von: blueberry63 am 21 Mai 2014, 14:26:40
Was mir heute noch im LOG aufgefallen ist: nach einem "shutdwon restart" kommen folgende Meldungen für  alle neuen IT Devices:

Beispiel:

No I/O device found for STD_D1

Danke für den Hinweis. Offenbar kann ein Modul, das als IODev verwendet wird, seine potentiellen Verwender (sog. "Clients") auflisten, damit FHEM die beiden Module einander zuorden kann. Ich habe deshalb das Modul IT als Client für FRM_RCOUT deklariert. Damit verschwindet die Meldung. Auf die Funktionalität hat die Meldung offenbar keine Auswirkung.

Für Ungeduldige: in FRM_RCOUT_Initialize muss folgende Zeile ergänzt werden:
$hash->{Clients} = ":IT:";
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

ZitatNo I/O device found for STD_D1

Diese Fehlermeldungen sind jetzt weg.

Nachdem nun das SENDEN über IT einwandfrei funktioniert (nochmal ein dickes Lob), möchte ich fragen, welche Möglichkeiten das EMPFANGEN von Signalen bietet bzw. wie wird es umgesetzt. Hier meine Fragen/Ideen:


  • Die Funksteckdosen liefern doch keine Rückmeldung über ihren Zustand, oder?
  • Könnte man theoretisch die Daten von Funkwetterstationen auslesen?
  • Könnte man die Fernbedienungen der Funksteckdosen zum Schalten von FHEM Devices missbrauchen (dazu hab eich im Forum schon mal etwas gelesen)?

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

Wzut

Zitat
Die Funksteckdosen liefern doch keine Rückmeldung über ihren Zustand, oder?
Nein, ist ne Einbahnstrasse
ZitatKönnte man theoretisch die Daten von Funkwetterstationen auslesen?
ja, wird aber auf der Arduino Seite noch ne lib fällig bzw. man müsste die rcswitch erweitern.
ZitatKönnte man die Fernbedienungen der Funksteckdosen zum Schalten von FHEM Devices missbrauchen
ja und nein :) ja weil die rcswitch lib das heute schon kann. ( ich nutze das z.B. in der Verbindung IT mit CUL433). Aber : Ich habe z.Z drei verschiedene Fernbedienungen und Steckdosen im Einsatz -> echte IT , Elro und noch ein Noname Baumarktprodukt. Schalten gehen alle Steckdosen mit dem IT Protokoll, aber beim Empfang gibt es wohl doch Umterschiede, am Besten klappt das bis jetzt mit echten Intertechno Produkten.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

blueberry63

@Wzut:
ZitatKönnte man die Fernbedienungen der Funksteckdosen zum Schalten von FHEM Devices missbrauchen

ja und nein :) ja weil die rcswitch lib das heute schon kann. ( ich nutze das z.B. in der Verbindung IT mit CUL433). Aber : Ich habe z.Z drei verschiedene Fernbedienungen und Steckdosen im Einsatz -> echte IT , Elro und noch ein Noname Baumarktprodukt. Schalten gehen alle Steckdosen mit dem IT Protokoll, aber beim Empfang gibt es wohl doch Umterschiede, am Besten klappt das bis jetzt mit echten Intertechno Produkten.

Heißt das, die Fernbedienungen senden alle unterschiedliche Signale/Protokolle? Wie wird denn eine Anbindung an FHEM dann umgesetzt? Passiert die Auswertung der Signale auf der FHEM-Seite?

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

Wzut

Zitat von: blueberry63 am 23 Mai 2014, 12:44:46
Heißt das, die Fernbedienungen senden alle unterschiedliche Signale/Protokolle?
meine drei sind halt nicht 100% identisch
Zitat
Wie wird denn eine Anbindung an FHEM dann umgesetzt? Passiert die Auswertung der Signale auf der FHEM-Seite?
das dekodieren der Funksignale muss auf der Arduino Seite passieren , die Anbindung an FHEM kann dann wieder das 10_IT.pm machen, dazu gibt es eine eigene Version vom 22 August 2013 (siehe http://forum.fhem.de/index.php/topic,14348.msg91401.html#msg91401 )
da aber der ursprüngliche Autor von 10_IT wohl nicht mehr aktiv ist hat jetzt justme1968 die Wartung übernommen ( siehe http://forum.fhem.de/index.php/topic,22612.msg169915.html#msg169915 )
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

blueberry63

OK, wenn ich es also richtig verstehe, dann kann EIN Arduino+Receiver nur für EINEN Zweck eingesetzt werden? Es wird nicht möglich sein, bspw. als FB-Empfänger für FHEM und als Empfänger für eine Wetterstation zu fungieren.

Wie könnten denn die weiteren Planungen für die Receiver-Seite aussehen?

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 23 Mai 2014, 09:11:33
Könnte man theoretisch die Daten von Funkwetterstationen auslesen?
Das hängt vom Protokoll der Wetterstation ab. Wenn der Empfänger etwas hereinbekommt, dann könnte man diese Signale auswerten und geeignet darstellen. Das könnte man z.B. in einem eigenen Modul machen, das die Events zu den Readings von FRM_RCIN auswertet. Sollte der Empfänger nichts herein bekommen, dann muss man zunächst wie von Wzut vorgeschlagen auf der Arduino-Seite eine Erweiterung vornehmen.

Zitat von: blueberry63 am 23 Mai 2014, 09:11:33
Könnte man die Fernbedienungen der Funksteckdosen zum Schalten von FHEM Devices missbrauchen (dazu hab eich im Forum schon mal etwas gelesen)?
Ja. Das Prinzip wäre dasselbe wie bei der Wetterstation: ein Modul überwacht die Readings von FRM_RCIN und reagiert entsprechend.

Zitat von: blueberry63 am 23 Mai 2014, 14:54:40
Es wird nicht möglich sein, bspw. als FB-Empfänger für FHEM und als Empfänger für eine Wetterstation zu fungieren.
Das hängt nur davon ab, ob die Wetterstation eins der in RCSwitch implementierten Protokolle verwendet. RCInputFirmata könnte theoretisch auch unterschiedliche Empfänger gleichzeitig betreiben; RCSwitch ist aber (Stand heute) auf einen einzigen Empfangspin beschränkt.

Zitat von: blueberry63 am 23 Mai 2014, 14:54:40
Wie könnten denn die weiteren Planungen für die Receiver-Seite aussehen?
Was mich angeht: ich habe den Code entwickelt und veröffentlicht und werde gern mit Norbert zusammen daran arbeiten, dass er in irgend einer Form in die offiziellen Distributionen von FHEM und Firmata einfliesst. Danach plane ich aber keine Weiterentwicklung.
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