Autor Thema: Eltako FWZ12-16A  (Gelesen 16728 mal)

Offline aicgazi

  • New Member
  • *
  • Beiträge: 8
Eltako FWZ12-16A
« am: 12 Januar 2013, 15:58:11 »
Config:
Aktuelles Fhem linux 12.01.2013
TCM310 ( und 2 CULS und FHZ1300 )

Habe mir das FWZ12-16A besorgt.
Nach dem Stromanschluß fängt das Teil "ganz normal" an zu senden
Nach eine unbestimmten Zeit werden keine Telegramme mehr empfangen.
wobei von anderen EnOcean Geräten Daten empfangen werden können.

Hat da jemand ne Idee ( oder ist der FWZ einfach nur kaputt ? )

mfg


----
2013-01-12_01:33:45 L1 teach-in: class A5.12.01 (manufacturer: Eltako)
2013-01-12_01:33:45 L1 0
2013-01-12_01:33:45 L1 sensor1: 0
2013-01-12_01:33:45 L1 sensor2: 0
2013-01-12_01:33:45 L1 sensor3: 24
2013-01-12_01:33:45 L1 D3: 1
2013-01-12_01:33:45 L1 D2: 0
2013-01-12_01:33:45 L1 D1: 0
2013-01-12_01:33:45 L1 D0: 1
2013-01-12_01:33:45 L1 0
2013-01-12_01:33:45 L1 sensor1: 0
2013-01-12_01:33:45 L1 sensor2: 0
2013-01-12_01:33:45 L1 sensor3: 0
2013-01-12_01:33:45 L1 D3: 1
2013-01-12_01:33:45 L1 D2: 1
2013-01-12_01:33:45 L1 D1: 0
2013-01-12_01:33:45 L1 D0: 0
2013-01-12_01:34:15 L1 0
2013-01-12_01:34:15 L1 sensor1: 0
2013-01-12_01:34:15 L1 sensor2: 0
2013-01-12_01:34:15 L1 sensor3: 10
2013-01-12_01:34:15 L1 D3: 1
2013-01-12_01:34:15 L1 D2: 1
2013-01-12_01:34:15 L1 D1: 0
2013-01-12_01:34:15 L1 D0: 0
2013-01-12_01:43:34 L1 0
2013-01-12_01:43:34 L1 sensor1: 0
2013-01-12_01:43:34 L1 sensor2: 0
2013-01-12_01:43:34 L1 sensor3: 24
2013-01-12_01:43:34 L1 D3: 1
2013-01-12_01:43:34 L1 D2: 0
2013-01-12_01:43:34 L1 D1: 0
2013-01-12_01:43:34 L1 D0: 1
2013-01-12_01:43:34 L1 0
2013-01-12_01:43:34 L1 sensor1: 0
2013-01-12_01:43:34 L1 sensor2: 0
2013-01-12_01:43:34 L1 sensor3: 10
2013-01-12_01:43:34 L1 D3: 1
2013-01-12_01:43:34 L1 D2: 1
2013-01-12_01:43:34 L1 D1: 0
2013-01-12_01:43:34 L1 D0: 0
----

Wenn D0 = 0 dann ist das wohl Sensor3 der Zählerstand in Sensor3/10 KWh ( eine Nachkommastelle )
Wenn D0 = 1 dann ist das wohl Sensor3 der augenblickliche Verbrauch in W


---
Beschreibung:
ORG = 0x07
Data_byte3 bis Data_byte1 bilden eine 24Bit Binär Codierte Zahl
Data_byte3 = Data Byte 3 (MSB) 0...16777215
Data_byte2 = Data Byte 2 0...16777215
Data_byte1 = Data Byte 1 (LSB) 0...16777215
Data_byte0 = DB0_Bit4 = Tarifumschaltung
(0 = Normaltarif, 1 = Nachttarif)
DB0_Bit3 = LRN Button
(0 = Lerntelegramm, 1 = Datentelegramm)
DB0_Bit2 = Umschaltung Dateninhalt:
1 = Augenblicksleistung in Watt,
0 = Zählerstand in 0,1KW/h
DB0_Bit1 = 0 (fi x)
DB0_Bit0 = 1 (fi x)
Mögliche Werte im Datentelegramm:
DB0 = 0x09 -> Zählerstand Normaltarif in 0,1KW/h
DB0 = 0x19 -> Zählerstand Nachttarif in 0,1KW/h
DB0 = 0x0C -> Augenblicksleistung in W,
Normaltarif aktiv
DB0 = 0x1C -> Augenblicksleistung in W,
Nachttarif aktiv
Lerntelegramm DB3..DB0: 0x48, 0x08, 0x0D, 0x80 (wird bei jedem
Power-up einmal gesendet)


Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25617
Aw: Eltako FWZ12-16A
« Antwort #1 am: 12 Januar 2013, 21:48:16 »
Ein FWZ12-16A kenne ich nicht, aber ich wuerde im "verklemmten" Zustand versuchen, ob es auf "get fwzName idbase" reagiert, um das Problem einzugrenzen.

Offline aicgazi

  • New Member
  • *
  • Beiträge: 8
Aw: Eltako FWZ12-16A
« Antwort #2 am: 12 Januar 2013, 22:43:30 »
Der FWZ12-16A ist ein Eltako FunkWechselstromZähler für eine Phase 16 A

bei
define EUL TCM 310 /dev/ttyTCM0@57600
define L1 EnOcean 00860E41
attr L1 subType sensor

funktioiniert im "verklemmten" Zustand
get EUL idbase
BaseId=FFFAAD80,RemainingWriteCycles=0A

ein
get L1 idbase geht ( so wie so ) nicht ( muss ja bei einem Sensor auch nicht sein oder? )

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25617
Aw: Eltako FWZ12-16A
« Antwort #3 am: 13 Januar 2013, 10:02:36 »
Hilft im verklemmten Zustand das abstecken/anstecken der EUL?
Wenn nicht, dann vermute ich ein Problem des Senders.

Offline aicgazi

  • New Member
  • *
  • Beiträge: 8
Aw: Eltako FWZ12-16A
« Antwort #4 am: 19 Januar 2013, 00:30:44 »
Es ist tatsächlich so, daß ein an und abstecken des TCM310 dannach das Funktelegramm wieder aufnimmt.
Ein "get tcm310 irgendwas" ( z.B. get TCM310 idbase ) hilft nicht.

seltsamerweise funktioniert ein EnOcean Schalter und der PM101 auch im "verklemmten" Zustand.

hm. evtl. kann man das über die firmware noch optimieren.
Kann ich dabei noch was helfen ?


Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25617
Aw: Eltako FWZ12-16A
« Antwort #5 am: 19 Januar 2013, 09:16:00 »
MWn ist das EUL Firmware nur fuer Seriell->USB Wandlung zustaendig, der Rest wird in den abgeschlossenen TCM310 Modul gemacht. Hilft ein "modify EUL 310 /dev/ttyTCM0@57600" ? Dieses Befehl schliesst /dev/ttyTCM0 und oeffnet es wieder. Es waere auch interessant zu sehen, ob das Problem auch mit einem anderen USB-Stick oder FWZ12 besteht. Ansonsten kann man entweder hightech auspacken (Funksignale protokollieren) oder EnOcean/Eltako fragen.

Offline aicgazi

  • New Member
  • *
  • Beiträge: 8
Aw: Eltako FWZ12-16A
« Antwort #6 am: 01 März 2013, 10:50:34 »
OK mit dem modify kann man den TCM310 tatsächlich "aufwecken"

Piezzo Schalter WS R101 von Omnio funktioniert nicht
modfiy EUL 310 /dev/ttyACM0@57600
Piezzo Schalter funktioniert.

Die Funkinformationen vom FWZ12-16A kommen allerdings nicht durch.
( irgendwann kommt dann ein paket aber ich hab noch nicht rausgefunden welche Bedingungen das begünstigen bzw. verhindern. Einstreueffekt vom LTE kann ich glaub ich ausschliessen das modem hab ich auch schon ausgemacht..)

Der PM101 liegt neben dem FWZ12-16A und sendet fleissig vor sich hin
( btw. kannst du den Code vom PM101 in die "A5" if-Schleife legen - ich hab das kurz vor dem teach-in reingemacht damit es funktioniert - guckst du:)

----------- CODE
    if(($db_0 & 0x08) == 0) {
      if($db_0 & 0x80) {
        my $fn = sprintf "%02x", ($db_3>>2);
        my $tp = sprintf "%02X", ((($db_3&3) << 5) | ($db_2 >> 3));
        my $mf = sprintf "%03X", ((($db_2&7) << 8) | $db_1);
        $mf = $EnO_manuf{$mf} if($EnO_manuf{$mf});
        my $m = "teach-in:class A5.$fn.$tp (manufacturer: $mf)";
        Log 1, $m;
        push @event, "3:$m";
        my $st = "A5.$fn.$tp";
        $st = $EnO_subType{$st} if($EnO_subType{$st});
        $attr{$name}{subType} = $st;

        if("$fn.$tp" eq "20.01" && $iohash->{pair}) {      # MD15
          select(undef, undef, undef, 0.1);                # max 10 Seconds
          EnOcean_A5Cmd($hash, "800800F0", "00000000");
          select(undef, undef, undef, 0.5);
          EnOcean_MD15Cmd($hash, $name, 128); # 128 == 20 degree C
        }

      } elsif($model eq "PM101") {
         ####################################
         # Ratio Presence Sensor Eagle PM101, code by aicgazi
         ####################################
         my $lux = sprintf "%3d", $db_2;
         # content  of $db_2 is the illuminance where max value 0xFF stands for 1000 lx
         $lux = sprintf "%4d", ( $lux * 1000 / 255 ) ;
         push @event, "3:brightness:$lux";
         push @event, "3:channel1:" . ($db_0 & 0x01 ? "on" : "off");
         push @event, "3:channel2:" . ($db_0 & 0x02 ? "on" : "off");


      } else {
        push @event, "3:teach-in:no type/manuf. data transmitted";

      }
------------------ Code



Offline klaus.schauer

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1272
Aw: Änderungen für Omnio Ratio eagle-PM-101
« Antwort #7 am: 02 März 2013, 08:44:43 »
Welche Aufgabe soll der zusätzliche Programmcode für die Abfrage von PM-101 Meldungen in der Teach-In Prozedure haben? Die gleiche Abfrage steht doch weiter unten nochmals (an der richtigen Stelle)!

Ich bin gerade dabei die automatiche Erkennnung von devices nicht nur für das Gerät MD15 zu ermöglichen. Hoffentlich gelingt es. Leider habe ich für das Gerät PM-101 bisher nicht herausfinden können, welches EEP verwendet wird. So richtig scheinen die Standardprofile nicht zu passen. Bei der Firma Omnio bin ich auch nicht fündig geworden.

Offline krikan

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7044
Aw: Änderungen für Omnio Ratio eagle-PM-101
« Antwort #8 am: 02 März 2013, 10:03:32 »
Hallo Klaus,
nach meiner dunkelen Erinnerung entspricht der PM101 keinem Standard-EEP, was sich mit anscheinend mit Deiner Beobachtung deckt. Schau Dir mal Seite 5 der dieses Dokumentes an: http://www.omnio.ch/content-en/downloads/Betriebsanleitungen/2902000_Betriebsanleitung_ea.pdf Das sollte die Telegrammbeschreibung sein.
Gruß, Christian

Offline klaus.schauer

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1272
Aw: Änderungen für Omnio Ratio eagle-PM-101
« Antwort #9 am: 02 März 2013, 10:38:20 »
Der PM-101 sollte aber eine EEP und eine ManufacturerID beim teach-in senden. Damit könnte man das Gerät dann theoretisch verhältnismäßig sicher automatisch anlernen. In der Anleitung steht nichts dazu und leider reagiert Omnio nicht auf meine E-Mail-Anfragen dazu.

Offline aicgazi

  • New Member
  • *
  • Beiträge: 8
Aw: Änderungen für Omnio Ratio eagle-PM-101
« Antwort #10 am: 02 März 2013, 15:12:34 »
Wenn das die richtige Stelle ist warum wird die Helligkeitsangabe nur dargestellt wenn der Code an der Stelle steht die ich beschrieben habe ?

btw. das sind beispielhaft ein paar auszüge aus meinem Logfile.
2013.03.01 18:40:30 4: PM101: ORG:A5 DATA:BB08FF03 ID:FF850031 STATUS:00
2013.03.01 18:40:30 4: PM101: ORG:A5 DATA:BB08FF03 ID:FF850031 STATUS:00
2013.03.01 18:52:17 4: PM101_SW: ORG:F6 DATA:70 ID:FF850030 STATUS:10
2013.03.01 18:52:17 4: PM101_SW: ORG:F6 DATA:00 ID:FF850030 STATUS:00
2013.03.01 18:52:19 4: PM101_SW: ORG:F6 DATA:30 ID:FF850030 STATUS:10
2013.03.01 18:52:19 4: PM101_SW: ORG:F6 DATA:00 ID:FF850030 STATUS:00
2013.03.01 18:52:22 4: PM101_SW: ORG:F6 DATA:B0 ID:FF850030 STATUS:10
2013.03.01 18:52:22 4: PM101_SW: ORG:F6 DATA:00 ID:FF850030 STATUS:00
2013.03.01 18:52:24 4: PM101_SW: ORG:F6 DATA:F0 ID:FF850030 STATUS:10
2013.03.01 18:52:25 4: PM101_SW: ORG:F6 DATA:00 ID:FF850030 STATUS:00
2013.03.01 18:52:27 4: PM101: ORG:A5 DATA:CC08FF00 ID:FF850031 STATUS:00
2013.03.01 18:52:27 4: PM101: ORG:A5 DATA:CC08FF00 ID:FF850031 STATUS:00

Die Schaltfunktionen gehen ganz "normal" über die Enocean Schalter programmierung mir einer eigenen ID
Die Helligkeit wird über eine 2.ID gesendet und fällt mir diesem DATA eben in die Schleife oben - aus dem Grund hätte ich das gerne oben stehen, damit ich mir das Modul nicht selbst wieder anpassen muß.
Sollte es programiertechnisch eine bessere Lösung geben, nehme ich die auch gerne an.
Ich möchte nur die Packete von ID FF850031 dekodiert haben.

Was bedeutet EEP ? in dem PDF steht doch wie die Packete gesendete werden und deren Bedeutung ?

mfg

Offline krikan

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7044
Aw: Änderungen für Omnio Ratio eagle-PM-101
« Antwort #11 am: 02 März 2013, 16:06:08 »
Hallo aicgazi,

aus meiner laienhaften Sicht müsste die Codeposition im aktuellen 10_ENOCEAN.PM richtig sein. Stammt der Ursprungs-Code zum PM101 nicht von Dir und hat das jemals funktioniert?

Deine Änderung verschiebt doch den Code in den Bereich zur Interpretation von Lerntelegrammen. Sendet Dein PM101 vielleicht Lerntelegramme?

Gruß, Christian

Offline krikan

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7044
Aw: Änderungen für Omnio Ratio eagle-PM-101
« Antwort #12 am: 02 März 2013, 16:53:19 »
Zitat
Sendet Dein PM101 vielleicht Lerntelegramme?

Zumindest die DATA-Werte Deines Logauszuges sind afaik keine Lern- sondern Standardtelegramme. Dann verstehe ich den Erfolg Deiner Codeänderung und das Problem mit dem Originalcode überhaupt nicht. Hast Du es noch mal mit dem Origial-Code ohne eigene Änderungen probiert.

Offline krikan

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7044
Aw: Änderungen für Omnio Ratio eagle-PM-101
« Antwort #13 am: 02 März 2013, 21:30:26 »
Zitat

   
Zitat
Sendet Dein PM101 vielleicht Lerntelegramme?

Zumindest die DATA-Werte Deines Logauszuges sind afaik keine Lern- sondern Standardtelegramme. Dann verstehe ich den Erfolg Deiner Codeänderung und das Problem mit dem Originalcode überhaupt nicht. Hast Du es noch mal mit dem Origial-Code ohne eigene Änderungen probiert.

Noch mal in Ruhe Deine Telegramme mit der Betriebsanleitung des PM101 angeschaut und behaupte nun das Gegenteil, da 0 Kennzeichen für Lerntelegramm und nicht 1:

DATA:BB08FF03
     ^^
     Reguläres Telegramm im Normal-Mode
     03 ist binär 00000011; damit ist B3=0 und es handelt sich um ein Lerntelegramm

DATA:CC08FF00
     ^^
     Telegramme im Gehtest-Mode
     00 ist binär 00000000; damit ist B3=0 und es handelt sich um ein Lerntelegramm

Wenn Dein PM101 permanent nur Lerntelegramme sendet, dann wundert es mich nicht, wenn Du derartige Veränderungen am Code vornehmen musst. Ich würde dann aber nicht zwingend auf ein Problem bei FHEM tippen; vor allem wenn ich Deine anderen Funkprobleme anschaue.

Du kannst gerne mal einen längeren Log-Auszug für den PM einstellen.

Gruß, Christian




harryzz

  • Gast
Aw: Eltako FWZ12-16A
« Antwort #14 am: 16 März 2013, 14:13:04 »
sorry for english but i get Eltako FWZ12-65 and found some bugs in 10_EnOcean.pm
on latest dev verion: line 1058 must be :        if ($dataType == 4)
line 1061:          push @event, "3:state:$meterReading";

also i provide gplot file for chart of current consumption and report of Cumulative.



 
 

Offline klaus.schauer

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1272
Aw: Eltako FWZ12-16A
« Antwort #15 am: 17 März 2013, 09:18:58 »
Zitat von: harryzz schrieb am Sa, 16 März 2013 14:13
i get Eltako FWZ12-65 and found some bugs in 10_EnOcean.pm on latest dev verion:

line 1058 must be : if ($dataType == 4)
line 1061: push @event, "3:state:$meterReading";


if ($dataType == 4): The dateType queries has been corrected.

push @event, "3:state:$meterReading"; : What was wrong, I can not find anything.

The profile is otherwise OK? Can I mark it as tested?

harryzz

  • Gast
Aw: Eltako FWZ12-16A
« Antwort #16 am: 17 März 2013, 09:33:38 »
Zitat von: klaus.schauer schrieb am So, 17 März 2013 09:18
Zitat von: harryzz schrieb am Sa, 16 März 2013 14:13
i get Eltako FWZ12-65 and found some bugs in 10_EnOcean.pm on latest dev verion:

line 1058 must be : if ($dataType == 4)
line 1061: push @event, "3:state:$meterReading";


if ($dataType == 4): The dateType queries has been corrected.

push @event, "3:state:$meterReading"; : What was wrong, I can not find anything.

The profile is otherwise OK? Can I mark it as tested?


for line 1061: in source is "3:status:$meterReading";[/quote]
i think must be state for reporting correct last value.
also may be will be nice attributes like "Cost", and "Period" to be calculated energy used.

br
harry

P.S.
also there will be problem with line 1062:
        } elsif ($db_0 == 0x8F && $manufID eq "00D") {
the right value is 0x80 not 0x8F i think.

All other is ok.
there are sniffed data:

55 00 0a 07 01 eb a5 48 08 0d 80 00 87 3d b9 00 01 ff ff ff ff 39 00 47
55 00 0a 07 01 eb a5 00 00 00 09 00 87 3d b9 00 01 ff ff ff ff 3c 00 b9
55 00 0a 07 01 eb a5 00 00 00 0c 00 87 3d b9 00 01 ff ff ff ff 37 00 e4
55 00 0a 07 01 eb a5 00 00 00 09 00 87 3d b9 00 01 ff ff ff ff 3a 00 c7
55 00 0a 07 01 eb a5 00 00 00 0c 00 87 3d b9 00 01 ff ff ff ff 3a 00 0d
55 00 0a 07 01 eb a5 00 00 00 09 00 87 3d b9 00 01 ff ff ff ff 3a 00 c7
55 00 0a 07 01 eb a5 00 00 00 0c 00 87 3d b9 00 01 ff ff ff ff 39 00 32
55 00 0a 07 01 eb a5 00 00 00 09 00 87 3d b9 00 01 ff ff ff ff 37 00 2e
55 00 0a 07 01 eb a5 00 00 00 0c 00 87 3d b9 00 01 ff ff ff ff 39 00 32
55 00 0a 07 01 eb a5 00 00 00 09 00 87 3d b9 00 01 ff ff ff ff 3d 00 ac
55 00 0a 07 01 eb a5 00 00 00 0c 00 87 3d b9 00 01 ff ff ff ff 3d 00 66
55 00 0a 07 01 eb a5 00 00 00 09 00 87 3d b9 00 01 ff ff ff ff 41 00 f2
55 00 0a 07 01 eb a5 00 00 00 0c 00 87 3d b9 00 01 ff ff ff ff 43 00 12
55 00 0a 07 01 eb a5 00 00 00 09 00 87 3d b9 00 01 ff ff ff ff 36 00 3b
55 00 0a 07 01 eb a5 00 00 00 0c 00 87 3d b9 00 01 ff ff ff ff 36 00 f1

harryzz

  • Gast
Aw: Eltako FWZ12-16A
« Antwort #17 am: 15 April 2013, 17:58:07 »
there are some new/old bugs found in EnOcean and TCM module.

2,3c2
< # $Id: 00_TCM.pm 2964 2013-03-22 06:03:51Z klaus-schauer $
<
---
> # $Id: 00_TCM.pm 2411 2013-01-03 13:05:04Z rudolfkoenig $
273,278d271
<
< # Schorsch M: dispatch corrections
< if(!Dispatch($hash, "EnOcean:$org:$d1:$id:$status:$odata", \%addvals)) {
< Log 1 , "Dispatch was called devices was not defined call Dispatch again";
< Dispatch($hash, "EnOcean:$org:$d1:$id:$status:$odata", \%addvals);
< }

becouse of this events are reported twice in log file.

in file 10_EnOcean.pm
line 1465
my $dataType = ($db_0 & 4) >> 3;
must be:
my $dataType = ($db_0 & 4) >> 2;


br
harry

Offline klaus.schauer

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1272
Aw: Eltako FWZ12-16A
« Antwort #18 am: 15 April 2013, 21:32:50 »
Fehler in den Profilen autoMeterReading.<xx> werden in der nächsten Version von 10_Enocean bereinigt.