Problem mit set xyz virtual 12

Begonnen von jhohn, 15 November 2015, 10:08:18

Vorheriges Thema - Nächstes Thema

jhohn

Moins,

ich versuche gerade für meine HM-RC-12 ein virtuelles Device, nach der Anleitung unter http://www.fhemwiki.de/wiki/Diskussion:HM-RC-12_Funkfernbedienung_12_Tasten, anzulegen, bekomme aber Fehlermeldungen beim Anlegen der Virtuellen Buttons:

fhem> define v_fernbedienung CUL_HM 1000003
fhem>
fhem> set v_fernbedienung virtual 12
f


ergibt im Log:
2015.11.15 09:51:30 1: define v_fernbedienung_Btn1 CUL_HM 100000301: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 1: define v_fernbedienung_Btn2 CUL_HM 100000302: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 1: define v_fernbedienung_Btn3 CUL_HM 100000303: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 1: define v_fernbedienung_Btn4 CUL_HM 100000304: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 1: define v_fernbedienung_Btn5 CUL_HM 100000305: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 1: define v_fernbedienung_Btn6 CUL_HM 100000306: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 1: define v_fernbedienung_Btn7 CUL_HM 100000307: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 1: define v_fernbedienung_Btn8 CUL_HM 100000308: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 1: define v_fernbedienung_Btn9 CUL_HM 100000309: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 1: define v_fernbedienung_Btn10 CUL_HM 10000030A: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 1: define v_fernbedienung_Btn11 CUL_HM 10000030B: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 1: define v_fernbedienung_Btn12 CUL_HM 10000030C: wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]
2015.11.15 09:51:30 3: CUL_HM set v_fernbedienung virtual 12


da scheint mir doch irgendwas im Code von set <device> virtual <channels> nicht zu passen. CUL_HM akzeptiert wohl nur 6 stellige IDs.

Eigentlich sollten doch so auch die Channels angelegt werden können.
define <name> CUL_HM <6-digit-hex-code|8-digit-hex-code>

FHEM auf Synology Diskstation DS413j (DSM4.3), HM LAN Adapter
Steuerung für Nachtspeicheröfen:
Ladung:   HM-WDS10-TH-O, HM-LC-Sw4-DR, Weather-Modul
Gebläse: HM-CC-TC, HM-LC-SW1-FM, HM-Sec-RHS
FHEM auf FritzBox 7390 für Telefon Funktionen

viegener

Die codes im log sind ja auch neunstellig und dein erstes define definiert einen 7 stelligen code oder bin ich noch nicht richtig wach?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

jhohn

Nee, ich war noch nicht richtig wach.

Aber warum hat das Teil nen 7stelligen Code angenommen?

Die Fernbedienung hab ich inzwischen aber am Laufen.
FHEM auf Synology Diskstation DS413j (DSM4.3), HM LAN Adapter
Steuerung für Nachtspeicheröfen:
Ladung:   HM-WDS10-TH-O, HM-LC-Sw4-DR, Weather-Modul
Gebläse: HM-CC-TC, HM-LC-SW1-FM, HM-Sec-RHS
FHEM auf FritzBox 7390 für Telefon Funktionen

viegener

Schön das es gelöst ist und ich dachte schon ich könnte keine Nullen mehr zählen  ;)

Habe gerade getestet, auch bei mir nimmt er 7 Stellen...


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

@martinp876

Der Einfachheit halber mal direkt in diesem Thread:

Problem: CUL_HM lässt im define auch 7 stellige HMIDs zu, da auf 6 bis 8 hexadezimale Stellen geprüft wird:

Vorschlag:

Zeile 472/473 von jetzt

 
return "wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]"
        if(!(int(@a)==3 || int(@a)==4) || $HMid !~ m/^[A-F0-9]{6,8}$/i);


auf folgendes ändern

 
return "wrong syntax: define <name> CUL_HM 6-/8-digit-hex-code [Raw-Message]"
        if(!(int(@a)==3 || int(@a)==4) || $HMid !~ m/^[A-F0-9]{6}([A-F0-9]{2})?$/i );


Warum: Die perl-regexp sind da nicht sehr intuitiv: Ein Quantor {6,8} erlaubt 6-8 Wiederholungen. Da es wohl keinen Quantor für 6 oder 8 gibt, habe ich es anders umgebaut...


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

martinp876