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.

Zitat von: drdownload am 23 April 2014, 09:29:29
Was für Stromzähler hast Du denn hier im Einsatz?

Einphasige S0-Zähler von eBay, baugleich zu denen von B+G E-Tech. Es gibt auch einen eigenen Thread, in dem ich die Einbindung beschrieben habe.
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.

Ich habe mich heute mit der Perl-Seite beschäftigt und ein neues Modul ins Leben gerufen, Arbeitsname FRM_RCSWITCH. Ich habe damit erfolgreich per FHEM eine Steckdose geschaltet. Für alle Interessierten hängt der aktuelle Stand an. Das Archiv enthält den Sketch ConfigurableFirmata, das Firmata-Feature RCSwitchFirmata, das FHEM-Modul FRM_RCSWITCH und die geänderten Perl-Firmata-Module. Im Arduino-Library-Ordner muss dazu noch RCSwitch liegen.
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

Wzut

fein, ich habe inzwischen auch ein neues FHEM Modul dafür 20_FRM_RC :)
Sollte man nun mal testen wie sich das alles optimal verheiraten lässt, da ich jetzt ersteinmal die Bedienung im Webinterface verbessern wollte.
Bzw. für jede Dose ein eigenes Device zur Verfügung stehen soll.
Legen wir das erste mal an :

define Steckdose1 FRM_RC <pin Nr>
attr Steckdose1 DIP 1000101000
attr Steckdose1 IODev <FIRMATA Device Name>
 
die Umrechnung der 10 Schalter entfällt nun , sie müssen direkt im Attribut DIP übergeben werden.
Wichtig auch das der Firmata Device Name unter IODev übergeben wird.
Ist das Device erfolgreich angelegt kann nun im Webinterface direkt an und aus geschaltet werden oder mit on-for-timer/off-for-timer zeitverzögert

Versucht man nun eine zweite Steckdose anzulegen nach obigen Muster gibt es eine Fehlermeldung da 10_FRM nur ein Device pro Pin zulässt.
Abhilfe : einfach 100 zur Pin Nr. dazuzählen:

define Steckdose2 FRM_RC <pin Nr +100>
attr Steckdose2 DIP 1000100100
attr Steckdose2 IODev <FIRMATA Device Name>

define Steckdose3 FRM_RC <pin Nr +100>
attr Steckdose3 DIP 1000100010
attr Steckdose3 IODev <FIRMATA Device Name>

define Steckdose4 FRM_RC <pin Nr +100>
attr Steckdose4 DIP 1000100001
attr Steckdose4 IODev <FIRMATA Device Name>
 

viel Spass beim testen
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

blueberry63

Hallo Wzut,

ich werde es nachher sofort testen.

Wie würde denn das 3. Gerät (und weitere) definiert: PIN +101, PIN+102 usw.?

Wäre es nicht sinnvoller, eine weitere "Geräte-Ebene" einzuführen (ähnlich wie bei meiner Konfig über "readingsProxy"):


define RC433Modul FRM_RC <pin Nr>
attr RC433Modul IODev <FIRMATA Device Name>

define Steckdose1 FRM_RCSUB
attr Steckdose1 FRMRC RC433Modul
attr Steckdose1 DIP 1000101000
...


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 24 April 2014, 13:35:01
Wie würde denn das 3. Gerät (und weitere) definiert: PIN +101, PIN+102 usw.?
nein , alle Geräte bekommen die gleich Pin Nr. wie das zweite :) es ändert sich immer nur der Name und natürlich attr DIP

Ich weiss ist hässlich, aber ich wollte jetzt nicht noch ne Version von 10_FRM anhängen die das abfängt.
Sinnvoller ist den Weg von fhem-user , d.h. zuerst wirklich sauber das Ding auf der Arduino Ebene einbinden ( + einem neuen PIN Mode) und danach die FHEM FRM Module dazu passend machen. Zu guter letzt mit Norbert reden damit er das auch einfach übernehmen kann und zukünftig via update zur Verfügung steht.

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

blueberry63

Hier kommt das 1. Testergebnis:

OK: ON,OFF,TOGGLE,OFF-FOR-TIMER
NOK: ON-FOR-TIMER (geht nicht mehr aus)

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

blueberry63

...und der nächste Bericht:

Das Anlegen mehrerer Steckdosen funktioniert nicht, es kommt die Fehlermeldung:

Zitat
error initializing 'STECKD_1': Device 'STECKD_2 allready defined for pin 7

Also kann Gerät1 nicht angelegt werden, da Gerät2(!) auch schon mit PIN 7 definiert ist (hat aber in DEF 107)

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

OK, das mit dem on-for-timer kann eigentlich nur ne Kleinigkeit sein. Ist vermutlich beim letzten aufräumen passiert. Schau ich morgen früh nach.
Die Fehlermeldung kommt von 10_FRM , das ist genau der Effekt wenn der Pin schon mal für ein Gerät definiert ist. Allerdings wundert mich das jetzt, denn genau das sollte ja mit den +100 umgangen werden. Muss ich auch morgen nachschauen ob in meiner 10_FRM noch Zeilen auskommentiert sind.

Danach werde ich aber auf jeden Fall mit der missbrauchten Firmata_Servo Schluss machen und auf die Variante von fhem-user umsteigen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

blueberry63

@Wzut,

wenn Du eh auf der Basis von FHEM-USER weitermachen willst, dann mußt Du Dir "für mich" keine Mühe machen. Ich warte gerne, wenn nachher eine Lösung rauskommt, die ins Konzept von FRM paßt.

In der Zwischenzeit komme ich mit meiner "readingsProxy"-Lösung gut zurecht.

Zum Testen bin ich aber natürlich jederzeit bereit.

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.

Ich (fhem-user) habe jetzt den Alias Christian. Ist nicht so sperrig.
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.

Kurzer Zwischenstand: ich mache weiter auf der Arduino-Seite. Ich integriere die RCSwitch-Parameter (z.B. pulseLength) und möchte mir danach ansehen, ob nicht auch der Empfang von Daten möglich ist. Wenn ich mir das DHT11-Beispiel ansehe, scheint das nicht allzu schwierig zu sein. Vermutlich wäre es dann sinnvoll, Senden und Empfangen in getrennten Firmata-Features unterzubringen, analog zu DigitalInput und DigitalOutput.

Die Perl-Seite ist ja zur Zeit funktionsfähig, aber nicht besonders komfortabel. Eigentlich wünsche ich mir so eine Art Klon des Moduls 10_IT. Das kommt dann später.
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

Wzut

Den Fehler bei on-for-timer habe ich gefunden und für das zweite, dritte, usw. Geräte auch eine andere Difinition eingeführt.
WICHTIG : Die Pin Nr. des 1+n Device muss nun gleich dem ersten Device sein (also nicht mehr +100 !) und es muss das neue Attribut SubDev auf 1 gesetzt werden.
Bsp bei mir :

define Steckdose1 FRM_RC 3
attr Steckdose1 DIP 1000101000
attr Steckdose1 IODev FIRMATA
attr Steckdose1 room Dosen

define Steckdose2 FRM_RC 3
attr Steckdose2 DIP 1000100100
attr Steckdose2 IODev FIRMATA
attr Steckdose2 SubDev 1
attr Steckdose2 room Dosen
 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Olly

Hi,

das finde ich toll hier, was ihr macht. Damit kann ich ja quasi meine Funkreichweite erweitern, indem ich einen 433 MHz Sender per Arduino und Netzwerk an entsprechender Stelle platziere.
Weiter so. ;-)

Gruss

     Olly
BananaPi 1GB;NetCSM 868MHz, miniCUL 433MHz, LaCrosseGateway, 2x SignalESP; FHEM 6.2

blueberry63

@Wzut

ich habe die Konfiguration nach Deiner neuen Definition umgestellt, bekomme aber wieder denselben Fehler beim Neustart:

Zitaterror initializing 'STECKD_1': Device 'STECKD_2 allready defined for pin 7

Liegt es vielleicht an der Reihenfolge bei der Initialisierung der Geräte beim Neustart?

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

blueberry63

@Olly,

ZitatDamit kann ich ja quasi meine Funkreichweite erweitern, indem ich einen 433 MHz Sender per Arduino und Netzwerk an entsprechender Stelle platziere

...genau das ist es, was mir so wichtig ist. Wenn man nämlich seinen FHEM-Server ungünstig plaziert hat (z.Bsp. Keller), dann bringt einem das 433-Funkmodul direkt am Server nicht viel. Leider kenne ich mich mit der Programmierung nicht genug aus, daß ich hier selbst eine Lösung erarbeiten könnte.

Deswegen: auch von mir nochmal ein DICKES Lob an Wzut, Christian und alle, die hier ihre Zeit investieren.

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