Einbindung der kostengünstigen Funkschaltsteckdose PCA 301 mit Energiemessung

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

Vorheriges Thema - Nächstes Thema

Fuchks

36_EC3000 Bugs:
-Die Berechnung der Werte ist nicht ganz korrekt, Korrektur im Anhang zum Test
-Fehlerhafte IDs führen zum Autocreate von EC3K-Geräten, die keine gültigen Werte haben (Ursache habe ich noch nicht verfolgt)
-Firmware für Jeelink nicht in FHEM enthalten

In der hier geposteten FW sind noch einige Fehler.
Es gibt aber eine andere Version - RF12test15 die sich deutlich von dieser unterscheidet...
Wenn ich das richtig sehe, ist dort schon deutlich mehr decodiert und auch der CRC-Check ist implementiert.
Müssten wir uns mal ranmachen, bissl was hab ich schon auf Basis der Version aus dem FHEM-Forum bei mir gefixt.

Würde gerne das DIFF anhängen, aber der Server nimmt keine Anhänge mehr an, also gezwungernermaßen als CODE:

--- /opt/fhem/FHEM/36_EC3000.pm.orig 2014-12-28 18:54:11.489882400 +0100
+++ /opt/fhem/FHEM/36_EC3000.pm 2014-12-23 01:31:32.207732329 +0100
@@ -118,11 +118,11 @@
     @bytes = split( ' ', substr($msg, 6) );

     $addr = sprintf( "%02X%02X", $bytes[0], $bytes[1] );
-    $secondsTotal = $bytes[2]*256*255*255 + $bytes[3]*256*255 + $bytes[4]*256 + $bytes[5];
-    $secondsOn = $bytes[6]*256*255*255 + $bytes[7]*256*255 + $bytes[8]*256 + $bytes[9];
-    $consumptionTotal = ($bytes[10]*256*255*255 + $bytes[11]*256*255 + $bytes[12]*256 + $bytes[13] )/1000.0;
-    $power = ($bytes[14]*256 + $bytes[15] )/10.0;
-    $powerMax = ($bytes[16]*256 + $bytes[17] )/10.0;
+    $secondsTotal = ($bytes[2]<<24) + ($bytes[3]<<16) + ($bytes[4]<<8) + $bytes[5];
+    $secondsOn = ($bytes[6]<<24) + ($bytes[7]<<16) + ($bytes[8]<<8) + $bytes[9];
+    $consumptionTotal = ( ($bytes[10]<<24) + ($bytes[11]<<16) + ($bytes[12]<<8) + $bytes[13] )/1000.0;
+    $power = ( ($bytes[14]<<8) + $bytes[15] )/10.0;
+    $powerMax = ( ($bytes[16]<<8) + $bytes[17] )/10.0;
     $resets = $bytes[18];
     $reception = $bytes[19];
   } else {




justme1968

anbei eine version mit dem obigen patch. peinlicher copy&paste fehler. komisch das das nicht schon vorher aufgefallen ist.

ansonsten gibt es noch drei weiter änderung in dieser version:

- state enthält nicht mehr einfach eine kopie von power sondern abhängig von power on oder off
- es gibt ein attribut offLevel. ein power wert kleiner gleich diesem attribut wird als off gewertet
- stateFormat wird mit state (power W) initialisiert

den offLevel würde ich auch für das PCA301 modul übernehmen.

gruss
  andre

edit: der anhang kommt sobald das forum wieder mag...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

hier die beiden module mit den oben beschriebenen änderungen...

edit: jetzt stimmt das file.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Fuchks

#843
Hab mal bissl an der FW für EC3000 geschraubt, die Berechnung der Energie ist korrigiert und passt jetzt auch bei größeren kWh.
Einfach die Hex ins FHEM-Firmware Verzeichnis werfen und JEE nach Modul-Anleitung flashen (AVRDUDE muss installiert sein).
Test und Rückmeldung erwünscht  8)

Ab hier für Entwickler:
Die Berechnung der Energie ist teilweise aus der RF12test15 übernommen (Änderungen etwa ab Zeile 2000).
Die RF12test15 wirft allerdings zahlreiche Fehler beim kompilieren - zumindest in der Arduino IDE bei mir  >:(
Dort sind aber viele Erweiterungen eingeflossen, wäre also sicher interessant die Version zum Laufen zu bringen und die Anpassungen an das Modul EC3000 einzupflegen - ist aber sicher eine Menge Arbeit.
Soweit ich das beurteilen kann, ist in der neuen Version der CRC-Check implementiert, was auf jeden Fall wichtig für korrekte Daten wäre.

justme1968

wenn es keine einwände gibt würde ich die modifizierten ec3000 und pca301 module sowie das ec3000 hex und den quelltext  file demnächst einchecken.

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

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

Schlimbo

Hallo zusammen,

wurde der Bug,  das die PCA301 Dosen manchmal nicht schalten mittlerweile behoben?

habe ab und zu folgendes im Log:
2015-01-26_19:59:39 PCA301_Waschmaschine power: 2.6
2015-01-26_20:00:02 PCA301_Waschmaschine set-off
2015-01-26_20:00:03 PCA301_Waschmaschine power: 1.9
2015-01-26_20:00:03 PCA301_Waschmaschine on

wie hier zu sehen bekommt die Steckdose einen set-off Befehl, meldet aber trotzdem on zurück. Könnte man das nicht im Modul abfangen und einen zweiten "off" Befehl senden?

ist die 36_PCA301.pm und die *hex Version, die über das Update kommt auf dem aktuellen Stand?

Gruß Schlimbo

strauch

Ich konnte über die Suche nicht finden, aktuell werden die PCA301 für 15€ verkauft, falls noch jemand welche benötigt :-).
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

pc1246

HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

Rossini600

1 Cubietruck, 3 Raspi mit HMLan / HMUSB für Homematic, Jeelink für PCA301, Cul V3 für MAX

Fritzbox 7390 für VPN, Presence und Callmonitor

pc1246

Danke!
Naja 8 Wochen ist schon viel, aber dafuer hat man dann eine Steckdose mit Rueckkanal, und nebenbei Energiemessung!
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

KusemoFuego

Hallo Zusammen,
habe seit einigen Monaten etliche PCA301 in einer Mietswohnung erfolgreich integriert und betrieben. Seit einigen Tagen ist offenbar ein Nachbar (wahrscheinlich aber ein Vermieter mehrer Wohnungen) auf den Geschmack gekommen und ich verzweifle an einem vollgemülltem LOGFILE. Dutzende PCA301 erscheinen OBWOHL autocreate ausgeschaltet ist. Hier ein kleiner Ausschnitt des Logfile:

2015.02.01 20:02:24 3: JLPCA301: Unknown code K 24 8 4 9 94 15 1 0 0 0 177, help me!
2015.02.01 20:02:25 3: PCA301 Unknown device B60201, please define it
2015.02.01 20:02:47 3: PCA301 Unknown device 9FB901, please define it
2015.02.01 20:02:49 3: JLPCA301: Unknown code K 24 8 4 9 182 106 1 0 118 0 47, help me!
2015.02.01 20:02:57 3: PCA301 Unknown device 4864C01, please define it
2015.02.01 20:03:02 3: PCA301 Unknown device 02C4853, please define it
2015.02.01 20:03:20 3: PCA301 Unknown device 019F55, please define it
2015.02.01 20:03:21 3: PCA301 Unknown device 013DE6, please define it
2015.02.01 20:03:29 3: PCA301 Unknown device 9E4C01, please define it
2015.02.01 20:03:31 3: PCA301 Unknown device 23DE0201, please define it
2015.02.01 20:03:34 3: PCA301 Unknown device C5A001, please define it
2015.02.01 20:03:40 3: PCA301 Unknown device 5EF301, please define it
2015.02.01 20:04:01 3: PCA301 Unknown device 9E4C01, please define it
2015.02.01 20:04:03 3: PCA301 Unknown device A23901, please define it
2015.02.01 20:04:03 3: PCA301 Unknown device EE2400, please define it
2015.02.01 20:04:10 3: PCA301 Unknown device 894D501, please define it
2015.02.01 20:04:11 3: PCA301 Unknown device 09F8AB, please define it
2015.02.01 20:04:22 3: PCA301 Unknown device 019F12, please define it
2015.02.01 20:04:32 3: PCA301 Unknown device 3E20F01, please define it
2015.02.01 20:04:33 3: PCA301 Unknown device A23901, please define it
2015.02.01 20:04:33 3: PCA301 Unknown device 23DE0201, please define it
2015.02.01 20:04:43 3: JLPCA301: Unknown code K 24 8 4 9 248 17 1 0 4 0 0, help me!
2015.02.01 20:04:46 3: JLPCA301: Unknown code K 24 7 5 9 94 243 1 170 170 170 170, help me!
2015.02.01 20:04:46 3: PCA301 Unknown device C4D501, please define it
2015.02.01 20:04:51 3: PCA301 Unknown device 5EF301, please define it
2015.02.01 20:04:53 3: JLPCA301: Unknown code K 24 8 4 1 159 185 1 0 64 8 201, help me!
2015.02.01 20:04:56 3: PCA301 Unknown device 09B6425, please define it
2015.02.01 20:05:05 3: PCA301 Unknown device 01A205, please define it
2015.02.01 20:05:05 3: PCA301 Unknown device 013A4C, please define it
2015.02.01 20:05:06 3: PCA301 Unknown device B60201, please define it
2015.02.01 20:05:07 3: PCA301 Unknown device 02C510, please define it
2015.02.01 20:05:13 3: PCA301 Unknown device 09EE168, please define it
2015.02.01 20:05:24 3: PCA301 Unknown device 019F12, please define it
2015.02.01 20:05:44 3: PCA301 Unknown device 09EE06, please define it
2015.02.01 20:05:50 3: PCA301 Unknown device 0213D5, please define it
2015.02.01 20:05:55 3: PCA301 Unknown device 0113B9, please define it
2015.02.01 20:05:58 3: PCA301 Unknown device A1E601, please define it
2015.02.01 20:05:59 3: PCA301 Unknown device 09B6425, please define it
2015.02.01 20:06:06 3: PCA301 Unknown device 01A207, please define it
2015.02.01 20:06:08 3: PCA301 Unknown device 019E06, please define it
2015.02.01 20:06:09 3: PCA301 Unknown device 23DE0201, please define it
2015.02.01 20:06:10 3: PCA301 Unknown device 0261A0, please define it
2015.02.01 20:06:15 3: PCA301 Unknown device 091724, please define it
2015.02.01 20:06:26 3: JLPCA301: Unknown code 4 8 4 1 159 185 1 0 64 8 201, help me!
2015.02.01 20:06:31 3: PCA301 Unknown device 3E2F301, please define it
2015.02.01 20:06:38 3: PCA301 Unknown device 01A207, please define it


Ich wäre für jeden Rat dankbar...
Habe etwas zu ignoreType im autocreate gelesen, allerdings liegt das Problem ja in der Tatsache, dass es trotz abgeschaltetem autocreate entsprechende Logfile Einträge gibt.

KernSani

Du wirst wohl nicht drumrumkommen, die Dinger in FHEM anzulegen (bzw. von autocreate anlegen zu lassen). In der freundlichen Variante setzt du dann "disable" und verschiebst sie in einen hiddenroom. In der bösartigen Variante schaltest du sie per at alle paar Minuten aus und wartest bis der Nachbar sie zurück schickt ;-) Ich rate selbstverständlich zur freundlichen Variante.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

ext23

*lol*

Aber für mich sieht das eher danach aus, dass es ein Fehler ist. Also durch irgend welchen Funk Matsch. Ich habe sowas auch ab und an mal. Da werden Sachen erkannt die hat kein Mensch hier, vor allem nicht in der Anzahl.

Aber du kannst ja trotzdem mal alle "unfreundlich" schalten lassen, vielleicht geht ja irgendwo Licht an ;-)

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)

KusemoFuego

wie könnte ich den Funkmatsch austrocknen? ich glaube auch nicht wirklich, dass in einem 6 Familienhaus plötzlich 60-70 Dosen installiert wurden...

cotecmania

Hallo,

der Thread ist mittlerweile ziemlich lang und ich habe immer noch folgende Fragen zur PCA301 :

- Wie kann ich den Tagesverbrauch auslesen ?

- Wenn das nicht geht, kann ich den Zähler um Mitternacht zurücksetzen ?

- Ich benutze PCA10.1. Kann ich PCA301 und gleichzeitig LaCrosse Temperatursensoren auslesen ?

- Wäre toll wenn das Wiki an diese Infos angepasst würden.

Gruss
Joe
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI