Hallo André,
ich habe gestern ein FHEM update gemacht, da wurde auch das SWAP Modul geupdatet. Seitdem funktioniert meine RGB Steuerung im Badezimmer nicht mehr, im Wohnzimmer komischerweise schon. Ich bekomme die Fehlermeldung: value has to be 10 byte(s) in size.
set bz_LED on = value has to be 10 byte(s) in size
set bz_LED off = value has to be 10 byte(s) in size
set bz_LED fadeTo FF0000 = FF0000 is not a valid color
set bz_LED fadeTo FF000000 = FF000000 is not a valid color
get bz_LED rgb = 01000000
get bz_LED RGB = ff0000
Beim Testen war der RGB Zustand in jedem Fall 010000 (schummerlicht rot ;-)) Der 4. Kanal ist eigentlich nicht aktiviert. Eigentlich deshalb, weil es schon knapp ein 3/4 Jahr her ist, seitdem ich den Sketch kompiliert habe. Aus der Erinnerung ist in dem Sketch nur RGB aktiviert, ohne sonst was.
Im Wohnzimmer sind 4 Ausgänge kompiliert.
List vom Wohnzimmer (Funktioniert):
Internals:
CHANNELS 4
CMD_SIZE 10
DEF 09
IODev nn_F2F_FBF_panStick
LASTInputDev panStick
MSGCNT 130
NAME wz_LampeSideboard
NR 276
STATE off
SWAP_00-ProductCode 0000002200000003
SWAP_00.1-ManufacturerID 00000022
SWAP_00.2-ProductID 00000003
SWAP_01-HardwareVersion 00100040
SWAP_02-FirmwareVersion 00020003
SWAP_03-SystemState 01
SWAP_04-FrequencyChannel 00
SWAP_05-SecurityOption 00
SWAP_06-SecurityPassword 00
SWAP_07-SecurityNonce A9
SWAP_08-NetworkID B547
SWAP_09-DeviceAddress 09
SWAP_0A-PeriodicTxInterval 0E10
SWAP_MISSED 0
SWAP_Sent_unconfirmed 3 Sent_unconfirmed
SWAP_lastRcv 2015-02-28 18:37:00
SWAP_lastSend 2015-02-28 18:36:59
SWAP_nonce 29
TYPE SWAP_0000002200000003
addr 09
devices
nonce 12
panStick_MSGCNT 130
panStick_TIME 2015-02-28 18:37:00
Readings:
2015-02-28 18:37:00 0B-RGBlevel 00000000
2015-02-28 18:37:00 0B.1-Red 00
2015-02-28 18:37:00 0B.2-Green 00
2015-02-28 18:37:00 0B.3-Blue 00
2015-02-28 18:37:00 0B.4-White 00
2015-02-28 18:04:57 0D-InternalTemperature 00000019
2015-02-27 20:18:34 0E-PowerOnState 0000000000
2015-02-27 20:18:34 0E.1-State 00
2015-02-27 20:18:34 0E.2-Brightness 00
2015-02-27 20:18:34 0E.3-Color 000000
2015-02-28 18:36:59 0F-Command 11000100000000000000
2015-02-28 18:36:59 0F.1-Cmd 11
2015-02-28 18:36:59 0F.2-Args 000100000000000000
2015-02-28 18:04:57 internaltemperature 25
2015-02-28 18:37:00 state off
Helper:
RGB_SIZE 5
Product:
label RGB driver board with IR
name rgbdriver
pwrdownmode 0
Registers:
11:
HASH(0x3dfb370)
HASH(0x3da5498)
HASH(0x3e1b7f0)
12:
hwmask 02
name IRrecv
swversion
type regular
endpoints:
HASH(0x3dfb118)
HASH(0x41331c8)
HASH(0x3daecc8)
13:
hwmask
name Temp
swversion
type regular
endpoints:
HASH(0x3df0f70)
14:
hwmask
name PowerOn
swversion
type config
endpoints:
HASH(0x3c509c8)
HASH(0x3dfbd18)
HASH(0x3e07ad0)
HASH(0x3dfafb0)
15:
HASH(0x3d9a940)
HASH(0x4115d80)
16:
hwmask 08
name Repeater mode
swversion
type config
endpoints:
HASH(0x3df1ab0)
17:
hwmask 01
name Bri
swversion
type regular
endpoints:
HASH(0x3df0da8)
18:
hwmask 04
name DMX
swversion 00020001
type config
endpoints:
HASH(0x3df1378)
19:
hwmask 10
name LedPower
swversion
type regular
endpoints:
HASH(0x4115af8)
20:
hwmask 20
name IRsend
swversion
type regular
endpoints:
HASH(0x41cd030)
HASH(0x4115780)
HASH(0x41cd768)
HASH(0x3df10c0)
22:
hwmask 200
name sensor
swversion
type regular
endpoints:
HASH(0x3daef38)
HASH(0x3df0e68)
23:
hwmask 400
name motion
swversion
type regular
endpoints:
HASH(0x3dfbaa8)
sentList:
ARRAY(0x4660150)
ARRAY(0x4660510)
ARRAY(0x465ffd0)
Attributes:
IODev nn_F2F_FBF_panStick
ProductCode 0000002200000003
alias Sideboard
devStateIcon {(SWAP_0000002200000003_devStateIcon($name),"toggle")}
fp_nn_fpHandy 5,325,1,
group Licht
icon light_led_stripe_rgb
room Wohnzimmer
userReadings internaltemperature:0D-InternalTemperature {hex(ReadingsVal($name,"0D-InternalTemperature","0"))}
userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
webCmd on:off:rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:toggle:dimUp:dimDown
List vom Badezimmer (Funktioniert nicht):
Internals:
DEF 07
Developer justme
IODev nn_F2F_FBF_panStick
LASTInputDev panStick
MSGCNT 51
NAME bz_LED
NR 280
Product RGB driver board with IR
STATE unknown
SWAP_00-ProductCode 0000002200000003
SWAP_00.1-ManufacturerID 00000022
SWAP_00.2-ProductID 00000003
SWAP_02-FirmwareVersion 00020003
SWAP_03-SystemState 01
SWAP_04-FrequencyChannel 00
SWAP_07-SecurityNonce 96
SWAP_0A-PeriodicTxInterval 0E10
SWAP_MISSED 12
SWAP_lastRcv 2015-02-28 18:01:04
SWAP_lastSend 2015-02-27 20:18:29
SWAP_nonce CE
TYPE SWAP_0000002200000003
addr 07
devices
panStick_MSGCNT 51
panStick_TIME 2015-02-28 18:01:04
Readings:
2015-02-28 18:01:04 0B-RGBlevel 01000000
2015-02-28 18:01:04 0B.1-Red 01
2015-02-28 18:01:04 0B.2-Green 00
2015-02-28 18:01:04 0B.3-Blue 00
2015-02-28 18:01:04 0B.4-White 00
2015-02-28 18:01:04 0D-InternalTemperature 00000015
2015-02-27 20:18:40 0E-PowerOnState 0000000000
2015-02-27 20:18:40 0E.1-State 00
2015-02-27 20:18:40 0E.2-Brightness 00
2015-02-27 20:18:40 0E.3-Color 000000
2015-02-27 20:03:29 0F-Command 10010000000001000000
2015-02-27 20:03:29 0F.1-Cmd 10
2015-02-27 20:03:29 0F.2-Args 010000000001000000
2015-02-28 17:00:58 internaltemperature 21
2015-02-28 18:42:32 state unknown
Product:
label RGB driver board with IR
name rgbdriver
pwrdownmode 0
Registers:
11:
HASH(0x3dfb370)
HASH(0x3da5498)
HASH(0x3e1b7f0)
12:
hwmask 02
name IRrecv
swversion
type regular
endpoints:
HASH(0x3dfb118)
HASH(0x41331c8)
HASH(0x3daecc8)
13:
hwmask
name Temp
swversion
type regular
endpoints:
HASH(0x3df0f70)
14:
hwmask
name PowerOn
swversion
type config
endpoints:
HASH(0x3c509c8)
HASH(0x3dfbd18)
HASH(0x3e07ad0)
HASH(0x3dfafb0)
15:
HASH(0x3d9a940)
HASH(0x4115d80)
16:
hwmask 08
name Repeater mode
swversion
type config
endpoints:
HASH(0x3df1ab0)
17:
hwmask 01
name Bri
swversion
type regular
endpoints:
HASH(0x3df0da8)
18:
hwmask 04
name DMX
swversion 00020001
type config
endpoints:
HASH(0x3df1378)
19:
hwmask 10
name LedPower
swversion
type regular
endpoints:
HASH(0x4115af8)
20:
hwmask 20
name IRsend
swversion
type regular
endpoints:
HASH(0x41cd030)
HASH(0x4115780)
HASH(0x41cd768)
HASH(0x3df10c0)
22:
hwmask 200
name sensor
swversion
type regular
endpoints:
HASH(0x3daef38)
HASH(0x3df0e68)
23:
hwmask 400
name motion
swversion
type regular
endpoints:
HASH(0x3dfbaa8)
Attributes:
IODev nn_F2F_FBF_panStick
ProductCode 0000002200000003
alias Badezimmer LED
devStateIcon {(SWAP_0000002200000003_devStateIcon($name),"toggle")}
event-on-change-reading .*
fp_nn_fpHandy 645,325,1,
group Licht
icon light_led_stripe_rgb
room Badezimmer
userReadings internaltemperature:0D-InternalTemperature {hex(ReadingsVal($name,"0D-InternalTemperature","0"))}
userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
webCmd rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:toggle:on:off:dimUp:dimDown
Irritiert mich. Hat nämlich locker seit ein paar Monaten ohne Probleme funktioniert.
Grüße, Tobias
die internals sind aus irgend einem grund nicht vollständig. vor allem fehlt CHANNELS und die system register sind nicht vollständig. es gibt auch ein paar fehlende/nicht bestätigte nachrichten.
mach mal bitte ein set statusRequest und set readDeviceXML. wenn das noch nicht hilf lösch und setz mal das ProductCode attribut neu.
gruss
andre
Hi,
das hat funktioniert. Danke!
Moin,
ich greif das Thema mal auf, auch wenn ich ein anderes Problem habe. Ich habe so ein bissel Probleme mit der Reaktionsgeschwindigkeit. Manchmal schalte ich mein Board und es reagiert sofort. Manchmal dauert es auch einige Sekunden bis etwas passiert. Ich hab mir also angewöhnt die Tasten der FB nur ein mal zu drücken und dann etwas länger zu warten. Gestern habe ich mal wieder angeschaltet (23:57), ist aber nichts passiert. Dachte ich gut, willst eh pennen also lässte es, mit einmal geht um halb 5 morgens das Licht an... Ich hab jetzt leider kein Debug log gezogen, aber woran kann das liegen?
Um 2015-03-02 23:57:05 wurde das folgende Notify ausgelöst: Fernbedienung01_Taste03:on set sz_Bett_RGB on
2015-03-02_23:57:05 sz_Bett_RGB set-regSet
2015-03-02_23:57:05 sz_Bett_RGB 0F-Command: 10000000000001000000
2015-03-02_23:57:05 sz_Bett_RGB 0F.1-Cmd: 10
2015-03-02_23:57:05 sz_Bett_RGB 0F.2-Args: 000000000001000000
2015-03-02_23:57:05 sz_Bett_RGB 0C-IRCommand: FFBAC55FC5
2015-03-02_23:57:05 sz_Bett_RGB 0C.1-Type: FF
2015-03-02_23:57:05 sz_Bett_RGB 0C.2-Value: BAC55FC5
2015-03-02_23:57:05 sz_Bett_RGB 0B-RGBlevel: 000000
2015-03-02_23:57:05 sz_Bett_RGB 0B.1-Red: 00
2015-03-02_23:57:05 sz_Bett_RGB 0B.2-Green: 00
2015-03-02_23:57:05 sz_Bett_RGB 0B.3-Blue: 00
2015-03-02_23:57:05 sz_Bett_RGB off
2015-03-02_23:57:05 sz_Bett_RGB RGB: 00000000
2015-03-02_23:57:05 sz_Bett_RGB 0D-InternalTemperature: 00000022
2015-03-02_23:57:05 sz_Bett_RGB internaltemperature: 34
2015-03-03_04:19:20 sz_Bett_RGB 0B-RGBlevel: 590026
2015-03-03_04:19:20 sz_Bett_RGB 0B.1-Red: 59
2015-03-03_04:19:20 sz_Bett_RGB 0B.2-Green: 00
2015-03-03_04:19:20 sz_Bett_RGB 0B.3-Blue: 26
2015-03-03_04:19:20 sz_Bett_RGB 59002600
2015-03-03_04:19:20 sz_Bett_RGB RGB: 59002600
2015-03-03_04:29:24 sz_Bett_RGB set-regSet
2015-03-03_04:29:24 sz_Bett_RGB 0F-Command: 11000100000000000000
2015-03-03_04:29:24 sz_Bett_RGB 0F.1-Cmd: 11
2015-03-03_04:29:24 sz_Bett_RGB 0F.2-Args: 000100000000000000
2015-03-03_04:29:24 sz_Bett_RGB 0B-RGBlevel: 590026
2015-03-03_04:29:24 sz_Bett_RGB 0B.1-Red: 59
2015-03-03_04:29:24 sz_Bett_RGB 0B.2-Green: 00
2015-03-03_04:29:24 sz_Bett_RGB 0B.3-Blue: 26
2015-03-03_04:29:24 sz_Bett_RGB 59002600
2015-03-03_04:29:24 sz_Bett_RGB RGB: 59002600
2015-03-03_04:29:24 sz_Bett_RGB 0D-InternalTemperature: 00000024
2015-03-03_04:29:24 sz_Bett_RGB internaltemperature: 36
2015-03-03_04:29:24 sz_Bett_RGB 0B-RGBlevel: 590026
2015-03-03_04:29:24 sz_Bett_RGB 0B.1-Red: 59
2015-03-03_04:29:24 sz_Bett_RGB 0B.2-Green: 00
2015-03-03_04:29:24 sz_Bett_RGB 0B.3-Blue: 26
2015-03-03_04:29:24 sz_Bett_RGB 59002600
2015-03-03_04:29:24 sz_Bett_RGB RGB: 59002600
2015-03-03_04:29:24 sz_Bett_RGB 0D-InternalTemperature: 00000024
2015-03-03_04:29:24 sz_Bett_RGB internaltemperature: 36
2015-03-03_04:29:26 sz_Bett_RGB set-regSet
2015-03-03_04:29:26 sz_Bett_RGB 0F-Command: 11000100000000000000
2015-03-03_04:29:26 sz_Bett_RGB 0F.1-Cmd: 11
2015-03-03_04:29:26 sz_Bett_RGB 0F.2-Args: 000100000000000000
2015-03-03_04:29:26 sz_Bett_RGB 0B-RGBlevel: 590026
2015-03-03_04:29:26 sz_Bett_RGB 0B.1-Red: 59
2015-03-03_04:29:26 sz_Bett_RGB 0B.2-Green: 00
2015-03-03_04:29:26 sz_Bett_RGB 0B.3-Blue: 26
2015-03-03_04:29:26 sz_Bett_RGB 59002600
2015-03-03_04:29:26 sz_Bett_RGB RGB: 59002600
2015-03-03_04:29:26 sz_Bett_RGB 0D-InternalTemperature: 00000025
2015-03-03_04:29:26 sz_Bett_RGB internaltemperature: 37
2015-03-03_04:29:26 sz_Bett_RGB 0B-RGBlevel: 000000
2015-03-03_04:29:26 sz_Bett_RGB 0B.1-Red: 00
2015-03-03_04:29:26 sz_Bett_RGB 0B.2-Green: 00
2015-03-03_04:29:26 sz_Bett_RGB 0B.3-Blue: 00
2015-03-03_04:29:26 sz_Bett_RGB off
2015-03-03_04:29:26 sz_Bett_RGB RGB: 00000000
2015-03-03_04:29:26 sz_Bett_RGB 0B-RGBlevel: 000000
2015-03-03_04:29:26 sz_Bett_RGB 0B.1-Red: 00
2015-03-03_04:29:26 sz_Bett_RGB 0B.2-Green: 00
2015-03-03_04:29:26 sz_Bett_RGB 0B.3-Blue: 00
2015-03-03_04:29:26 sz_Bett_RGB off
2015-03-03_04:29:26 sz_Bett_RGB RGB: 00000000
2015-03-03_04:29:26 sz_Bett_RGB 0D-InternalTemperature: 00000025
2015-03-03_04:29:26 sz_Bett_RGB internaltemperature: 37
Gruß
Daniel
Moin,
mhh ich habe seit 2 Tagen jetzt auch die Probleme. Wenn ich den statusRequest mache kommt der nicht durch, es bleiben 22 Sent_unconfirmed. Schalten geht auch nicht mehr. Ich bekomme nur alles mit wenn ich direkt mit Infrarot am Board schalte. Manchmal erkennt er auch das I/O Board anstelle des RGB Board. Reset des Boards hilft auch nicht.
Wenn ich Verbose auf 5 stelle, sehe ich genau dieselben Logs wie ohne, muss das so? Ich wollt mal ein paar Debug logs durchstöbern was da passiert bzw. nicht passiert.
Gruß
Daniel
Ich habe die Probleme mit der Meldung "value has to be 10 byte(s) in size" bis lang nur nach einem restart gehabt. Aber auch nicht nach jedem restart, das macht die Suche ziemlich lästig. Bei mir lässt sich das Problem immer mit einem get statusRequest lösen, danach bauen sich die INTERNALS wieder richtig auf.
Darum habe ich mir folgenden Workaround gebaut:
define at_checkSwapRgbInternals at +*30:00 {checkSWAPrgbInternals}
In die 99_myUtils.pm kommt folgende Funktion:
# Überprüft alle devices vom TYPE SWAP_0000002200000003 auf das vorhandensein von INTERNALs CHANNELS und CMD_SIZE
# Wenn ein Internal nicht vorhanden ist, wird für das Device ein "set statusRequest" durchgeführt
# Author : TeeVau (fhem@622mbit.de)
# Aufruf : checkSWAPrgbInternals()
sub checkSWAPrgbInternals {
my @devices = split(/\n/,fhem("list TYPE=SWAP_0000002200000003",1));
foreach my $device ( @devices ) {
my $channels = InternalVal($device, "CHANNELS", -1);
my $cmdSize = InternalVal($device, "CMD_SIZE", -1);
my $statusRequest = 0;
Log3 (undef, 4, "checkSWAPrgbInternals(): Device=$device, CHANNELS=$channels, CMD_SIZE=$cmdSize");
if ($channels == -1) {
Log3 (undef, 3, "checkSWAPrgbInternals(): CHANNELS from $device seems to be wrong ($channels)");
$statusRequest = 1;
}
if ($cmdSize == -1) {
Log3 (undef, 3, "checkSWAPrgbInternals(): CMD_SIZE from $device seems to be wrong ($cmdSize)");
$statusRequest = 1;
}
if ($statusRequest == 1) {
fhem("set $device statusRequest");
prowl("set $device statusRequest", "SWAP Problem",1);
Log3 (undef, 3, "checkSWAPrgbInternals(): set $device statusRequest");
}
}
}
es gab bis vor kurzem ein problem beim fhem start das die automatischen statusRequest nachrichten an die swap devices zeitlich so eng beieinander lagen das es abhängig von der swap adresse passieren konnte das sie sich gegenseitig in die quere gekommen sind. dafür habe ich einen patch eingecheckt das dieses automatische statusRequest zufällig verzögert und so das problem deutlich entschärfen sollte.
was ich noch nicht eingebaut habe ist das ein fehlgeschlagenes kommando automatisch wiederholt wird.
kannst du bitte mal ein get listUnconfirmed
machen das problem auftritt?
gruss
andre
Ich mache morgen mal ein Update, das letzte ist schon länger her, und teste mal.
Hast du einen Tipp, um das Verhalten zu provozieren? Oder reicht einfach öfters einen restart zu machen und dann schauen?
Von der Erinnerung her waren die unconfirmed Meldungen immer für die Status register 0 bis a.
Ich melde mich morgen mal nach den Tests.
wenn es das obige (und hoffentlich mit dem update gelöste) problem ist sollten mehrere neustarts zeigen ob es jetzt besser geht.
gruß
andre
Scheint geholfen zu haben. Bei 10 Versuchen, vor dem Update, gab es bei 3 Restarts keine Internals bei 2 Devices. Nach dem Update hatten die Devices auch nach 10 Restarts immer die Internals.
Ich lass das Script dennoch laufen. Falls noch mal was auftaucht melde ich mich :-)
da die verzögerung zufällig ist kann es natürlich immer noch schief gehen. dagegen würde nur das gezielte automatisch neu senden helfen. das ist wie gesagt noch nicht eingebaut.