Problem mit FHEM! UPDATE von 5.3 auf 5.4

Begonnen von mediastudio, 20 April 2013, 12:13:45

Vorheriges Thema - Nächstes Thema

klaus.schauer

Zitat von: mediastudio schrieb am Sa, 27 April 2013 22:35habe nun die neue 10_EnOcean.pm installiert,
##############################################
#
$Id$          steht keine Version drin
hat 142 Kb

Dimmer immer noch ein Problem,
der Eventmonitor zeigt das senden der Befehle, aber das Funksignal für die Dimmer wird nicht am EnOcean FAM empfangen / ausgewertet.


Buero_Dimmer    bor sending A55A000A0001A5025A0109fff25c8300E6 /// da scheint etwas faul zu sein.
Buero_Rollo     bor sending A55A6B0550000000FFF25c8230BF
switch_0011305C bor sending A55A6B0550000000fff25c8030BD


CFG,

define Buero_Dimmer EnOcean fff25c83
attr Buero_Dimmer eventMap B0:on BI:off
attr Buero_Dimmer manufID 00D
attr Buero_Dimmer room EnOcean
#attr Buero_Dimmer subDef fff25c83
attr Buero_Dimmer subType eltakoDimmer
attr Buero_Dimmer webCmd dim:on:off


fhem log

2013.04.27 22:05:18 5: Cmd: >set Buero_Dimmer dim 90<
2013.04.27 22:05:18 5: Triggering Buero_Dimmer (1 changes)
2013.04.27 22:05:18 5: Notify loop for Buero_Dimmer dimValueStored: 90
2013.04.27 22:05:18 5: bor sending A55A000A0001A5025A0109fff25c8300E6 ### ist das richtig? ##########
2013.04.27 22:05:18 5: SW: A55A000A0001A5025A0109fff25c8300E6
2013.04.27 22:05:18 2: EnOcean: set Buero_Dimmer dim 90
2013.04.27 22:05:18 5: Triggering Buero_Dimmer (1 changes)
2013.04.27 22:05:18 5: Notify loop for Buero_Dimmer on
2013.04.27 22:05:18 5: bor/RAW: A55A8B0900000000000000000094
2013.04.27 22:05:18 5: TCMParse: 8B09000000000000000000
2013.04.27 22:05:18 2: bor ERR_SYNTAX_LENGTH
2013.04.27 22:05:18 4: HTTP FHEMWEB:127.0.0.1:54732 GET /fhem?room=EnOcean
2013.04.27 22:05:18 4: /fhem?room=EnOcean / RL: 1553 / text/html; charset=UTF-8 / Content-Encoding: gzip


2013.04.27 22:09:32 5: Cmd: >set Buero_Rollo ZU<
2013.04.27 22:09:32 5: bor sending A55A6B0550000000FFF25c8230BF
2013.04.27 22:09:32 5: SW: A55A6B0550000000FFF25c8230BF
2013.04.27 22:09:32 2: EnOcean: set Buero_Rollo BI
2013.04.27 22:09:33 5: Triggering Buero_Rollo (1 changes)
2013.04.27 22:09:33 5: Notify loop for Buero_Rollo ZU
2013.04.27 22:09:33 5: bor/RAW: A55A8B58000000000000000000E3
2013.04.27 22:09:33 5: TCMParse: 8B58000000000000000000
2013.04.27 22:09:33 4: HTTP FHEMWEB:127.0.0.1:54816 GET /fhem?room=EnOcean
2013.04.27 22:09:33 4: /fhem?room=EnOcean / RL: 1553 / text/html; charset=UTF-8 / Content-Encoding: gzip


2013.04.27 22:17:27 5: Cmd: >set switch_0011305C on<
2013.04.27 22:17:27 5: bor sending A55A6B0550000000fff25c8030BD
2013.04.27 22:17:27 5: SW: A55A6B0550000000fff25c8030BD
2013.04.27 22:17:27 2: EnOcean: set switch_0011305C BI
2013.04.27 22:17:27 5: Triggering switch_0011305C (1 changes)
2013.04.27 22:17:27 5: Notify loop for switch_0011305C on
2013.04.27 22:17:27 5: bor/RAW: A55A8B58000000000000000000E3
2013.04.27 22:17:27 5: TCMParse: 8B58000000000000000000
2013.04.27 22:17:27 4: HTTP FHEMWEB:127.0.0.1:54914 GET /fhem?room=EnOcean
2013.04.27 22:17:27 4: /fhem?room=EnOcean / RL: 1543 / text/html; charset=UTF-8 / Content-Encoding: gzip

was kann das sein?
So wie ich es aus den Logs interpretiere, wird für den Dimmer ein A5-Profil verwendet, für das Rollo und den Schalter ein F6-Profil.

U. U könnten die Datentelegramme der A5-Profile im Modul 00_TCM für Transceiver Module mit TCM120 nicht richtig verarbeitet zu werden. Vor einiger Zeit wurden die EnOcean-Module vom EnOcean Profiltyp ORG z. B. 05 auf RORG z. B. F6 umgestellt. Das Profil Switch in 10_EnOcean verwendet im Sendekommando noch die bisherige Form

IOWrite($hash, "", sprintf("6B05%02X000000%s%s", $db_3, $subDef, $status));

In den neueren Profilen wird aber die aktuelle Darstellungsform verwendet, z. B.:

$data = sprintf "A5%02X%02X%02X%02X%s00", $gwCmdID, $blindParam1, $blindParam2, $setCmd, $subDef;

IOWrite($hash, "000A0001", $data);

Für die Transceiver Module mit TCM310 werden beide Formen korrekt verarbeitet. Für TCM120 gibt's vielleicht Probleme. Leider kann ich meine Theorie wegen fehlender TCM120 Testhardware nicht verifizieren. Falls für das Rollo das Profil Manufacturer Specific Applications (EEP A5-3F-7F), Shutter angelernt würde und das dann das gleiche Fehlerbild zeigt, würde das die Theorie stützen.

Ich habe in der aktuellen 10_EnOcean jetzt auch die IOWrite Befehle für das Profil Switch aktualisiert:

      if ($sendCmd ne "no") {
        ##
        IOWrite ($hash, "00070001", sprintf ("F6%02X%s%s", $db_3, $subDef, $status));
#        IOWrite($hash, "", sprintf("6B05%02X000000%s%s", $db_3, $subDef, $status));
        Log $ll2, "EnOcean: set $name $cmd";
        if ($switchMode eq "pushbutton") {
          ##
          IOWrite ($hash, "00070001", sprintf ("F600%s20", $subDef));
#          IOWrite($hash, "", sprintf("6B0500000000%s20", $subDef));
     Log $ll2, "EnOcean: set $name released";
        }
      }

Funktioniert bei mir einwandfrei. Bitte mal mit TCM120 testen. Falls jetzt beim TCM120 auch die Switch-Kommandos nicht mehr ausgeführt werden, könnte meine Theorie stimmen.

Ich denke wir brauchen nicht weiter suchen... derzeit kann mit einem TCM120 "nur" mit das Profil Switch gesteuert werden. Ob grundsätzlich auch andere Profile möglich wären, müsste untersucht werden. Leider gibt es wohl keine zusammenhängende Beschreibung des verwendeten Protokolls ESP2. Auch scheinen die Produktbeschreibungen für das Modul TCM120 auf den Enocean-Seiten nicht mehr vorhanden zu sein. Fraglich ob und mit welchem Auswand weitere Protokolle lauffähig gemacht werden könnten.


mediastudio

Hallo,
ist auch meine Vermutung, das TCM120 scheint die neue Fhem Version nicht richtig zu interpretieren.
Auch bei der Rollo Steuerung zeigt sich ein merkwürdiges Verhalten.

##############################################
#
# Jalousien / Rolladen Buero
#
##############################################
 
define Buero_Rollo EnOcean FFF25c86 ///// hier kann die subDef Adresse oder eine weitere Adresse eingetragen werden, funktioniert.
attr Buero_Rollo devStateIcon AUF:rollo.auf ZU:rollo.zu STOP:rollo.stop
attr Buero_Rollo eventMap B0:AUF BI:ZU released:STOP
attr Buero_Rollo fp_BUNGALOW 350,234,5,
attr Buero_Rollo icon icojalousie
attr Buero_Rollo manufID 00D
attr Buero_Rollo model FSB14
attr Buero_Rollo room EnOcean
attr Buero_Rollo shutTime 5
attr Buero_Rollo subDef FFF25c82  ///////// hier wird der Aktor angesprochen also Sende ID , funktioniert SubDef muss aktiv sein!
attr Buero_Rollo subType EltakoShutter //// hier steht EltakoShutter "E", funktioniert, eltakoShutter "e" keine Funktion Signal wird falsch gesendet.
attr Buero_Rollo webCmd AUF:STOP:ZU

Bezogen auf V 5.4 und TCM120 ergibt sich bei der Rollo-Steuerung folgendes Verhalten:
egal ob 10_EnOcean.pm V. 3027 oder die neue 10_EnOcean.pm,  hier muss "subDef" aktiv sein und
die richtige subDef FFF25c82 Adresse eingetragen sein sonst keine Funktion!
define Buero_Rollo EnOcean FFF25c86 zeigt sich nebensächlich, kann, muss aber keine fortlaufende Adresse haben!

Wenn ich hier die "subDef" ausblende habe ich  keine Funktion!
Wenn ich "eltakoShutter" schreibe, habe ich auch keine Funktion bei schreibweise "EltakoShutter" "E", funktioniert alles. Ist eswas merkwürdig.

Ich bin für weitere Hilfe dankbar, werde mir wohl auch einen "TCM310" zulegen, wenn damit die Probleme gelöst werden.

mediastudio

nach Änderung keine Funktion mehr!

if ($sendCmd ne "no") {
 ##
IOWrite ($hash, "00070001", sprintf ("F6%02X%s%s", $db_3, $subDef, $status));
 # IOWrite($hash, "", sprintf("6B05%02X000000%s%s", $db_3, $subDef, $status));
 Log $ll2, "EnOcean: set $name $cmd";
 if ($switchMode eq "pushbutton") {
 ##
IOWrite ($hash, "00070001", sprintf ("F600%s20", $subDef));
 # IOWrite($hash, "", sprintf("6B0500000000%s20", $subDef));
 Log $ll2, "EnOcean: set $name released";
 }
 }
 
######################################

Buero_Rollo bor sending
vorher: A55A6B0550000000FFF25c8230BF
nachher: A55A00070001F650FFF25c82304D
                       
switch_0011305C bor sending
vorher:  A55A6B0550000000fff25c8030BD
nachher: A55A00070001F650fff25c80304B

#######################################

Könnte man das für den TCM120 wieder verwendbar machen?

                           

klaus.schauer

Zitat von: mediastudio schrieb am So, 28 April 2013 13:50Hallo,
ist auch meine Vermutung, das TCM120 scheint die neue Fhem Version nicht richtig zu interpretieren.
Auch bei der Rollo Steuerung zeigt sich ein merkwürdiges Verhalten.

##############################################
#
# Jalousien / Rolladen Buero
#
##############################################
 
define Buero_Rollo EnOcean FFF25c86 ///// hier kann die subDef Adresse oder eine weitere Adresse eingetragen werden, funktioniert.
attr Buero_Rollo devStateIcon AUF:rollo.auf ZU:rollo.zu STOP:rollo.stop
attr Buero_Rollo eventMap B0:AUF BI:ZU released:STOP
attr Buero_Rollo fp_BUNGALOW 350,234,5,
attr Buero_Rollo icon icojalousie
attr Buero_Rollo manufID 00D
attr Buero_Rollo model FSB14
attr Buero_Rollo room EnOcean
attr Buero_Rollo shutTime 5
attr Buero_Rollo subDef FFF25c82  ///////// hier wird der Aktor angesprochen also Sende ID , funktioniert SubDef muss aktiv sein!
attr Buero_Rollo subType EltakoShutter //// hier steht EltakoShutter "E", funktioniert, eltakoShutter "e" keine Funktion Signal wird falsch gesendet.
attr Buero_Rollo webCmd AUF:STOP:ZU

Bezogen auf V 5.4 und TCM120 ergibt sich bei der Rollo-Steuerung folgendes Verhalten:
egal ob 10_EnOcean.pm V. 3027 oder die neue 10_EnOcean.pm,  hier muss "subDef" aktiv sein und
die richtige subDef FFF25c82 Adresse eingetragen sein sonst keine Funktion!
define Buero_Rollo EnOcean FFF25c86 zeigt sich nebensächlich, kann, muss aber keine fortlaufende Adresse haben!

Wenn ich hier die "subDef" ausblende habe ich  keine Funktion!
Wenn ich "eltakoShutter" schreibe, habe ich auch keine Funktion bei schreibweise "EltakoShutter" "E", funktioniert alles. Ist eswas merkwürdig.

Ich bin für weitere Hilfe dankbar, werde mir wohl auch einen "TCM310" zulegen, wenn damit die Probleme gelöst werden.
Wenn das attr subType kein gültiger Wert hat, also falsch z. B. weil es falsch geschrieben ist, wird per default das Profil Switch genutzt. Das erklärt auch die Fehlfunktion beim TCM120 Modul. Es wird keine Fehlermeldung generiert. Ich glaube ich werde in der nächsten Version von 10_EnOcean eine Fehlermeldung einbauen!

Bei der Funktionalität von subDef kann ich mich nur wiederholen: Falls subDef nicht gesetzt ist, wird DEF verwendet.

klaus.schauer

Zitat von: mediastudio schrieb am So, 28 April 2013 17:06nach Änderung keine Funktion mehr!

if ($sendCmd ne "no") {
 ##
IOWrite ($hash, "00070001", sprintf ("F6%02X%s%s", $db_3, $subDef, $status));
 # IOWrite($hash, "", sprintf("6B05%02X000000%s%s", $db_3, $subDef, $status));
 Log $ll2, "EnOcean: set $name $cmd";
 if ($switchMode eq "pushbutton") {
 ##
IOWrite ($hash, "00070001", sprintf ("F600%s20", $subDef));
 # IOWrite($hash, "", sprintf("6B0500000000%s20", $subDef));
 Log $ll2, "EnOcean: set $name released";
 }
 }
 
######################################

Buero_Rollo bor sending
vorher: A55A6B0550000000FFF25c8230BF
nachher: A55A00070001F650FFF25c82304D
                       
switch_0011305C bor sending
vorher:  A55A6B0550000000fff25c8030BD
nachher: A55A00070001F650fff25c80304B

#######################################

Könnte man das für den TCM120 wieder verwendbar machen?

                           
Wenn irgendjemand noch eine Beschreibung des alten Protokolls hätte, könnte man wahrscheinlich eine Konvertierungsroutine einbauen. Für den Empfang der Signale gibt es diese Konvertierung schon.

mediastudio

hier ist etwas  TCM120
© EnOcean GmbH, All Rights Reserved

klaus.schauer

Zitat von: mediastudio schrieb am So, 28 April 2013 22:13hier ist etwas  TCM120
© EnOcean GmbH, All Rights Reserved
Mit diesem TCM120 Benutzerhandbuch sollten wir bei der Protokollumsetzung in 00_TCM weiterkommen.

klaus.schauer

Die TCM120 Senderoutine in 00_TCM enthält jetzt auch 1BS- (Profil contact) und 4BS-Protokolle (z. B. Dimmer). Dafür ist auch in 10_EnOcean der Sendeaufruf im Profil switch auf ESP3 umgestellt. Für den TCM120 wird dann in 00_TCM von ESP3 in ESP2 konvertiert. Bei ESP2 nicht unterstützte ESP3-Varianten werden mit Fehlermeldungen abgewiesen.

Ich kann die Funktionalität nicht testen, da ein TCM120 bei mir nicht verfügbar ist. Für einen Test ist sowohl 00_TCM als auch 10_EnOcean auszutauschen, Dateien siehe Anhang.

mediastudio

Hallo,
danke für diese schnelle Reaktion, ich war unterwegs, werde morgen die Dateien testen.
Gruß Wilfried

mediastudio

Hallo,
habe gerade mal die Dateien getestet, leider kommen Fehlermeldungen

C:\Users\samsung\Downloads\FHEM Server>start "" "http://localhost:8083"
C:\Users\samsung\Downloads\FHEM Server>cd /fhem-5.4
Wenn ich eine Funktion auslöse kommt:

C:\fhem-5.4>perl fhem.pl fhem.cfg
Undefined subroutine &main::substring called at ./FHEM/00_TCM.pm line 130.
C:\fhem-5.4>
oder:
C:\fhem-5.4>perl fhem.pl fhem.cfg
Undefined subroutine &main::substring called at ./FHEM/00_TCM.pm line 128.
C:\fhem-5.4>
Wenn es hilft, dann könnte ich zum Test mein USB-TCM120 zur Verfügung stellen.

klaus.schauer

Zitat von: mediastudio schrieb am Mi, 01 Mai 2013 11:31Hallo,
habe gerade mal die Dateien getestet, leider kommen Fehlermeldungen

C:\Users\samsung\Downloads\FHEM Server>start "" "http://localhost:8083"
C:\Users\samsung\Downloads\FHEM Server>cd /fhem-5.4
Wenn ich eine Funktion auslöse kommt:

C:\fhem-5.4>perl fhem.pl fhem.cfg
Undefined subroutine &main::substring called at ./FHEM/00_TCM.pm line 130.
C:\fhem-5.4>
oder:
C:\fhem-5.4>perl fhem.pl fhem.cfg
Undefined subroutine &main::substring called at ./FHEM/00_TCM.pm line 128.
C:\fhem-5.4>
Wenn es hilft, dann könnte ich zum Test mein USB-TCM120 zur Verfügung stellen.
Wenn ich die Befehle richtig schreiben würde... noch ein Versuch. Ich verstehe aber nicht, weshalb die Syntaxfehler nicht schon in meinem System gemeldet wurden.

mediastudio

Hallo,
das sieht schon Gut aus, die Befehle kommen nun am FAM an, werde nun den
Dimmer einlernen. Ich bin begeistert von der schnellen Programmierung.
Hast Du schon mal meine Homepage besucht, ich will FHEM mit in das Projekt einbinden.
http://wf-consulting.eu

mfg
Wilfried

mediastudio

das einlernen der Dimmer geht noch nicht, das Signal wird gesendet, aber der Dimmer will nicht reagieren.
Cmd: >set Buero_Dimmer on<
TCM bor sending A55A6B0702640109fff25c8400B3
SW: A55A6B0702640109fff25c8400B3
EnOcean: set Buero_Dimmer on 100
Triggering Buero_Dimmer (1 changes)
Notify loop for Buero_Dimmer on
Connection accepted from FHEMWEB:127.0.0.1:53345
bor/RAW: A55A8B58000000000000000000E3
TCMParse: 8B58000000000000000000
Connection accepted from FHEMWEB:127.0.0.1:53346

mal sehen was das noch ist.
mfg
Wilfried

klaus.schauer

Zitat von: mediastudio schrieb am Mi, 01 Mai 2013 15:17das einlernen der Dimmer geht noch nicht, das Signal wird gesendet, aber der Dimmer will nicht reagieren.
Cmd: >set Buero_Dimmer on<
TCM bor sending A55A6B0702640109fff25c8400B3
SW: A55A6B0702640109fff25c8400B3
EnOcean: set Buero_Dimmer on 100
Triggering Buero_Dimmer (1 changes)
Notify loop for Buero_Dimmer on
Connection accepted from FHEMWEB:127.0.0.1:53345
bor/RAW: A55A8B58000000000000000000E3
TCMParse: 8B58000000000000000000
Connection accepted from FHEMWEB:127.0.0.1:53346

mal sehen was das noch ist.
mfg
Wilfried
Das Datentelegramm ist korrekt. Bitte mal das Datentelegramm vom teach-in senden.

Erfahrungsgemäß sind die größten Hürden beim richtigen teach-in zu erwarten. Beim Eltako FUD12 muss man für das Anlernen den oberen Schalter auf 5 (PC/FVS) stellen und dann ein Fhem teach-in Telegramm senden, siehe http://www.eltako.com/fileadmin/downloads/de/_bedienung/FUD12NPN-12V_DC_30100800-4_dt.pdf.


mediastudio

Hallo,
ich bin unterwegs, werde am Samstag weiteres testen.
mfg
Wilfried