Einbindung der kostengünstigen Funkschaltsteckdose PCA 301 mit Energiemessung

Begonnen von Emil, 13 März 2013, 11:22:35

Vorheriges Thema - Nächstes Thema

Porky666

Hallo,

Danke passt !

offtopic gibt es noch folgende Fehlermeldung.

Use of uninitialized value in pattern match (m//) at ./FHEM/01_FHEMWEB.pm line 1928.

Gruß

Stefan
ODROID U3 1GB Ubuntu immer aktuell
FHEM immer das aktuellste Development
Defined modules:

COC; CULv3; HMLAN :HM-CC-SCD,HM-CC-TC,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-SCI-3-FM,HM-SEC-SC,HM-SEC-WIN,HM-WDS10-TH-O; ESA2000; FS20; HUEBridge; Huedevices; IT; JeeLink :PCA301 :panstamp:

mele

Hallo zusammen,

ich bin kurz davor, mir auch jeelink und PCA 301 zu bestellen.

Bei der Frage des letzten Status vor Stromausfall hatte ich eine Idee, von deren Umsetzung ich aber keinen Schimmer habe:

FHEM könnte doch bei jedem Schaltvorgang einen Eintrag in eine txt/Logdatei schreiben, welche dann bei Neustart von FHEM ausgelesen wird.
Ggfs. könnte man das Modul so anpassen, dass es, wenn bei einer Installation noch keine "Logdatei" vorhanden ist, diese erstellt wird.

VG
Manuel
FHEM auf NUC/Proxmox (Rpi 2 / Rpi Zero W mit FHEM2FHEM, RFHEM)
Homematic/LaCrosse/PCA301/Shelly, Rollladen, Batterieaktor + Relais zur Schaltung Garagentor (Promatic 2), Xiaomi FlowerSens, Bewässerungssteuerung Garten und Gewächshaus, Weatherman und Landroid

locutus

Zitat von: ohweh schrieb am Mi, 04 September 2013 22:18Oder ist schon einer von Euch mit basteln fertig ...?
Nö, aber die Lötstation ist bereit und mein JeeNode-Clone auf Arduino-Basis auch.
Ich bin schon sehr auf die softwareseitige Implementierung gespannt.

justme1968

meien ec3000 sind vorhin angekommen. der empfang mit dem zugehörigen display ist wirklich sehr bescheiden. mal sehen wie es mit dem jeenode ist. ich hoffe der zweite kommt auch bald.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ohweh

Zum RoomNode habe ich ja schon was geschrieben. Ein Batteriebetriebener Sensor. Gemessen werden Luftfeuchtigkeit, Temparatur, Licht und Bewegung. Das alles untergracht in einem umzubauenden Airwick Freshmatic iMotion Compact. Dieser stellt sowohl das Batteriefach bereit (Akkus funktionieren hervorragend), als auch den PIR Sensor. Hier ein aktueller Link zu Ebay:
http://www.ebay.de/itm/Air-Wick-Freshmatic-iMotion-Compact-Touch-of-Luxury-Zimt-Kaminzauber-/271128331203?pt=Haushaltswaren&hash=item3f208203c3

Benötigt wird je RoomNode ein JeeNode, sowie ein RoomBoard.
  JeeNode  : http://jeelabs.com/products/jeenode
  RoomBoard: http://jeelabs.com/products/room-board  (bitte NICHT den PIR mitbestellen!! Der ist zwar klasse, aber dann macht der Airwick keinen Sinn!)

Darüber hinaus braucht ihr einmalig
  JeeLink   : http://jeelabs.com/products/jeelink  
  USB-BUB II: http://jeelabs.com/products/usb-bub

Andere Arduino-Clones mit RFM12B-Modul funktionieren natürlich auch (als Ersatz für JeeNode und JeeLink), aber dann passt natürlich dass RoomBoard nicht. Also entweder das RoomBoard irgendwie anpassen, oder aber selbst bauen sodass es auf das jeweilige Shield passt.

Bzgl. des Airwick-Umbaus verweise ich hier nochmal auf die bereits erwähnten Links:
  http://www.tucsni.nl/jee/
  http://www.dbzoo.com/livebox/hah_hahnode/airwick

Einige Leiterbahnen müssen auf der Platine vollständig unterbrochen werden (durch die gelben Punkte gekennzeichnet):
  http://www.dbzoo.com/_media/livebox/hah_hahnode/6783277062_ab9599b1f3_b.jpg?cache=&w=537&h=700&tok=19af9e

Auf diesem Bild sind die zu legenden Anschlüsse gut zu sehen (schwarz=GND, rot=VCC, gelb=PIR):
  http://www.dbzoo.com/_media/livebox/hah_hahnode/6929392059_61f1d49e22_b.jpg?cache=&w=900&h=849&tok=002e0a

Den JeeNode selbst habe ich oben und unten mit einem Klecks Heisskleber fixiert. Dadurch verrutscht er im Gehäuse nicht. Ist aber trotzdem, mit sanfter Gewalt, wieder herausnehmbar.

Für den Lichtsensor habe ich mir weisse Stöpsel aus dem Baumarkt besorgt, welche Schrauben in z.B. Schrankwänden abdecken sollen. Haben oben ein Hütchen, sind unten rund und hohl. Ich hab ein Loch durchgebohrt, die Leiter der Photodiode isoliert, durchgesteckt, und das ganze dann oben im Airwick mit Heisskleiber fixiert.

Programmiert wird durch die untere Klappe (die dort befindliche Feder zuvor mit ordentlich Schmackes "rausdrehen", aber bitte nicht ziehen!).

!!! GAAAAANZ WICHTIG !!!!: Batterien/Akkus VOR der Verbindung des USB BUBs entfernen! Der USB BUB versorgt den JeeNode mit Strom. Mir ist es auch schon passiert dass ich nicht dran gedacht hab, die Akkus darin sind unglaublich heiss geworden. Glück gehabt dass nichts passiert ist, mit Batterien wär's bestimmt in einem Desaster geeendet. Also BITTE dran denken! Macht ggf. nen Aufkleber auf die Klappe, damit ihr auch in ein paar Monaten wieder dran denkt... (ich vergess das garantiert nicht mehr :)

Über die bereits erwähnten Funktionen Temperatur, Luftfeuchtigkeit, Licht und Bewegung hinaus habe ich noch weitere Modifikationen am Airwick vorgenommen (weil er mal offen war...):

a.) Ich habe die grüne Leuchtdiode gegen eine IR-Diode getauscht (Standard 100mw). Die Leiterbahn darüber getrennt und ein zusätzliches Kabel angelötet.

b.) Den unteren 4-Stufen-Schalter gegen einen TSOP31238 getauscht (hab dazu einfach den gesamten Schalter aus der Platine rausgesägt). TSOP31238 ist zwar nicht mehr zeitgemäss, aber ihr glaubt gar nicht wie PERFEKT der in das Schalterloch passt, einfach wieder von hinten mit Heisskleber drüberbügeln :) Ihr kriegt den IR Empfänger auch immer noch, z.B. bei Reichelt:
  http://www.reichelt.de/Fotodioden-etc-/TSOP-31238/3/index.html?&ACTION=3&LA=446&ARTICLE=107210&GROUPID=3045&artnr=TSOP+31238

Die Modifikation zum Senden um Empfangen von IR ist im Sketch nicht berücksichtigt. Das hab ich seitens Hardware aber schon für die Zukunft verbaut (entweder mach ich's gleich jetzt, oder nie :), ich hoffe ich finde im Winter auch mal die Zeit dafür das entsprechend zu implementieren. Ich denke der IR Empfang wird mit PIN Change Interrupts noch auf Batterie Basis implementierbar sein. Aber spätestens wenn's um's Senden geht, dann wird der Sensor ja auch immer (oder zumindest häufig) auf RF-Empfang gehen müssen, spätestens dann wird also ne externe Stromversorgung fällig. Egal, immerhin muss ich dann nicht alles wieder auseinander nehmen, ich weiss dass IR-Sender und -Empfänger schon existent sind.

Die benötigten Sketche sind zum einen ein modifizierter RF12demo Sketch für den JeeLink, sowie ein modifizierter RoomNode Sketch. Beide basieren auf der Arbeit von JCW von JeeLabs. Aber mit folgenden Modifikationen:

a.) RoomNode-Sketch:

- Der Original RoomNode Sketch an sich ist super, aber unterstützt leider den Airwick PIR nicht. Der entsprechende Code im Sketch ist komplett getauscht (d.h. wer den Original-JeeLabs-Sensor verwendet, und nicht den Airwick-Sensor, muss Hand an den Code anlegen!!)

- Alle RoomNodes senden mit derselben Node ID 11. Im Sketch ist allerdings eine SubNodeId je Sensor vor dem kompililieren fest zu definieren! Dies ist in doppelter Hinsicht wichtig: Zum einen um mit dem Adressraum nicht zu aasen, zum zweiten weil das FHEM Modul auf EINEN Pakettyp reagiert (11), und im Modul die SubNodeIDs auseinanderpuzzelt.

b.) RF12demo-Sketch (gehört auf den JeeLink für den Empfang):

- Der RF12demo Sketch basiert auf Version 10+. RoomNodes senden von sich aus ihre Pakete alle 5 Minuten per "Fire and Forget", nicht aber wenn's um Bewegung geht. Da der RoomNode-Sketch dahingehend geändert wurde, dass alle RoomNodes unter der ID 11 + SubNodeID senden, habe ich den RF12demo Sketch dahingehend erweitert, nicht leere ACKs, sondern ACKs mit 1-byte-payload (i.e. der SubNodeId) zu versenden. Dieser ACK-Payload wiederum wird von dem betreffenden RoomNode verarbeitet.

---

Bzgl. der RF12 Parameter: Ihr müsst erstmal den RF12demo-Sketch auf den JeeLink pumpen, dann

- ggf. erstmals das 868Mhz-Band auswählen (mittels Kommando "8b"), falls es nicht eh schon angewählt ist
- NodeId 31 auswählen (falls nicht eh schon ausgewählt)
- eine möglichst "freie" Gruppe aussuchen... z.B. für die Gruppe "1" das Kommando "1g". Beobachtet das ganze ne Weile und schaut, wieviel Pakete ihr so empfangt (erstmal ungewollt, der RoomNode ist ja noch nicht in Betrieb). Wechselt dann auf "2", "3", usw... Ziel ist es, eine möglichst wenig frequentierte Gruppe zu erwischen. Es gibt 255 mögliche Gruppen. Aber ihr müsst natürlich nicht alle durchprobieren! Sondern nur eine finden, wo nicht permanent fremde Pakete reinkommen.
- Wollt ihr wissen, wieviel tatsächlich im Band so los ist? Dann gebt vorrübergehend mal "0g" (=alle Gruppen) ein. Dann könnt ihr nachvollziehen, worüber Trilu und ich uns am Anfang dieses Threads unterhalten haben :))))
- Sobald ihr mal ne Gruppe gefunden habt wo relativ wenig los ist (bspw. 21), dann nehmt sie und ersetzt die Variable "NETGRP" im RoomNode-Sketch entsprechen (also "#define NETGRP 21").
- Dann RoomNode-Sketch kompilieren, draufpumpen, und i.d.R. seht ihr alle 5 Minuten auf dem JeeLink ein Paket das wie folgt beginnt:
"OK 11 xx yy yy yy yy", wobei "xx" der SubNodeID entspricht.
- Habt ihr auch die Hürde geschafft, klemmt ihr den JeeLink an FHEM. Den Rest sollte jetzt Andres Modul erlediegen.

---

Hört sich alles so kompliziert an, ist es aber gar nicht. Wer immer es will, wird es bis hierhin schaffen. Und dann? Dann sendet der RoomNode alle 5 Minuten Temperatur, Luftfeuchtigkeit, Licht... und Bewegegung sofort! Wobei nach einer erkannten Bewegung erstmal eine bewusste Unterdrückung eintritt, es wird nicht permanent "Bewegung, Bewegung, Bewegung" gesendet! Dieser Wert geht erst wieder bei der nächsten geplanten Übertragung auf "Keine Bewegung". Natürlich nur, sofern nicht wieder Bewegung stattfindet. Doof zu erklären, macht Euch selber ein Bild, funktioiert gut.

Zuguterletzt noch bzgl. Temperatur und Luftfeuchtigkeit: Diese werden über 3 Messwerte "gemittelt", d.h. wenn jemand mit Stickstoff den Sensor bearbeitet, wird er sich wundern, dass nicht sofort -51,2 Grad angezeigt wird (JAAA, ich WEISS, die Temperatur von Stickstoff ist niedriger!! Aber es wird nur von -51,2 bis +51,2 Grad gemessen). Sondern vielmehr die Temperatur erst nach 3 Minuten nach und nach sinkt. Ist gewollt und beabsichtigt, plötzliche Temperaturschwankungen sollen nicht spontan Reaktionen hervorrufen. Könnt ihr natürlich alles ändern.

Fehlt noch was ausser den Sketchen? Wenn ja, her mit den Fragen :)

Gruss

Oliver

P.S.: Die letzten Airwicks, die ich über Ebay geordert habe, waren mit Innen-Dreikant-Schrauben versehen... Ist erstmal doof wenn man die anglotzt und nach Ideen sucht, wie man die denn jetzt aufkriegt? Mir hat ein kleiner, ganz normaler Schlitz-Schraubenzieher geholfen, der hat halt in die Ecken gepasst. Schrauben sind nicht allzu fest, ist ja Plastik... Und ersetzt die bloss nicht! Die Schrauben haben ein ganz beknacktes Zwischenmaß... Setzt ihr andere, vor allem längere, ein, dann kommen die an zwei Stellen vorne wieder raus. Ich weiss, wovon ich rede :))



fh168

Hallo,
Erst einmal danke für den Beitrag, werde ich mir nachbauen.
Fehlt in der Bauteile Auflistung nicht der usbbub2?
Kann man den vorhandenen jeelink mit der pca301 gleichzeitig benutzen?

Robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

ohweh

@Robin: hab JeeLink und USB-BUB tatsächlich vergessen, hab's gerade noch hinzugefügt. Jetzt sollte die Liste komplett sein. Und ja, Du kannst mehrere JeeLinks parallel an FHEM betreiben. Bei mir sind's aktuell drei (PCA, EC3000, RF12demo).

Wer sich nicht sicher ist, ob es was taugt, und daher nicht gleich so viel ausgeben möchte, kann auch erstmal nur ein RoomNode zu bauen und diesen per USB-BUB direkt an FHEM zu hängen. In dem Fall wird die Ausgabe seriell weiterverarbeitet (und die RF12 Signale ins Nirvana gesendet). In dem Fall bräuchtet ihr den JeeLink erstmal nicht.

Solltet ihr schon einen JeeLink z.B. für die PCA haben, dann könnt ihr zum testen natürlich auch den nehmen. Ihr müsst halt nur vorübergehend mal den Sketch tauschen (in dem Fall pcaSerial gegen die modifiziert RF12demo10).

/Oliver

ext23

Ehm Andre wo seh ich die Version die gerade auf meinem JeeNode Stick läuft? Ich bekomme seit gestern nur noch das Power Reading und nichts anderes mehr, aber ich hab ja vermutlich auch ne Uralte Version drauf. Die Module kommen ja ausm Update mittlerweile da brauche ich ja nichts machen oder?

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

ohweh

Moin Daniel,

Du meinst die Sketch-Version? Die kriegste mit "v"... Solltest Du nichts zu sehen bekommen, dann ist Deine Version wirklich uralt. Den Sketch musst Du aber selber flashen.

/Oliver

justme1968

das anzeigen der sketch version habe ich noch nicht eingebaut.

meine liefern noch alle beiden werte. verbrauch und last kommen auch in der gleichen nachricht. da kann nicht ein teil fehlen.

ich habe aber geändert das das  verbrauchs reading nur geschrieben wird wenn sich der wert geändert hat. vielleicht liegt es daran das an der dose etwas hängt das so wenig verbraucht das es dauert bis sich der wert ändert?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ext23

Jo die Firmware, den Code, das hexfile, was auch immer (Ich hasse das Wort sketch, das erinnert mich immer an Comedy ;-))

Aber ich seh das nicht direkt unter FHEM unter dem Device nein?

Und meine Version ist wirklich alt, das ist die erste wo vorne die 24 als Indikator oder was das war steht ;-)

Naja ich brenn mal schnell ne neue rein ja. Liegt die mittlerweile im contrib oder hier ausm Forum?

Viele Grüße
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

ext23

Achsoo ja naja dann ist es das. Der Verbrauch ändert sich bei mir so gut wie garnicht...

Nur meine Grafik haut dann nicht mehr hin, da ist seit dem Update gestern der Verbraucht auf 0 obwohl er vorher 0,7 war.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ext23

Würde ich auch machen, aber der Gedanke ist ja richtig unwichtiges zu entfernen, aber schau mal hier:

http://www.fhemwiki.de/wiki/RFXtrx#FAQ:_Wie_bringe_ich_FHEM_dazu_nicht_alle_paar_Sekunden_den_Zustand_der_Sensoren_zu_loggen.3F

Also das kann man auch anders lösen wenn es einer individuell haben möchte. Da gibts auch tricks wie man sich die plots nicht versaut.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)