SIGNALduino und Funkbus

Begonnen von gestein, 08 April 2022, 10:57:48

Vorheriges Thema - Nächstes Thema

gestein

Hallo Ralf,

Vielen Dank.
Leider habe ich es noch nicht geschafft meinen Funkaktor zum Einschalten zu überreden.

Muss s=B immer sein?

Leider zeigt das SIGNALduino-Device im log die empfangenen Daten nicht in dem Format.

2022.05.08 18:52:41.061 5 : mySIGNALduino_WZ/RAW READ: /MC;LL=-1010;LH=1030;SL=-491;SH=524;D=9D4F3F7555A00;C=509;L=49;R=13;s4;b4;
2022.05.08 18:52:41.062 4 : mySIGNALduino_WZ/msg READ: MC;LL=-1010;LH=1030;SL=-491;SH=524;D=9D4F3F7555A00;C=509;L=49;R=13;s4;b4;
2022.05.08 18:52:41.062 1 : DEBUG>mySIGNALduino_WZ: incoming message: (MC;LL=-1010;LH=1030;SL=-491;SH=524;D=9D4F3F7555A00;C=509;L=49;R=13;s4;b4;)
2022.05.08 18:52:41.063 1 : DEBUG>mySIGNALduino_WZ: extracted  pattern LL -1010
2022.05.08 18:52:41.063 1 : DEBUG>mySIGNALduino_WZ: extracted  pattern LH 1030
2022.05.08 18:52:41.063 1 : DEBUG>mySIGNALduino_WZ: extracted  pattern SL -491
2022.05.08 18:52:41.063 1 : DEBUG>mySIGNALduino_WZ: extracted  pattern SH 524
2022.05.08 18:52:41.064 1 : DEBUG>mySIGNALduino_WZ: extracted  data 9D4F3F7555A00
2022.05.08 18:52:41.064 1 : DEBUG>mySIGNALduino_WZ: extracted absolute clock 509
2022.05.08 18:52:41.064 1 : DEBUG>mySIGNALduino_WZ: extracted  number of 49 bits
2022.05.08 18:52:41.064 1 : DEBUG>mySIGNALduino_WZ: extracted RSSI 13
2022.05.08 18:52:41.064 1 : DEBUG>mySIGNALduino_WZ: unknown Message part s4
2022.05.08 18:52:41.064 1 : DEBUG>mySIGNALduino_WZ: unknown Message part b4
2022.05.08 18:52:41.065 1 : DEBUG>mySIGNALduino_WZ: processing manchester message len:13
2022.05.08 18:52:41.065 1 : DEBUG>clock and min length matched
2022.05.08 18:52:41.066 4 : mySIGNALduino_WZ: Found manchester Protocol id 213 clock 509 RSSI = -67.5 -> Funkbus
2022.05.08 18:52:41.066 1 : DEBUG>mySIGNALduino_WZ: extracted data 1001110101001111001111110111010101010101101000000000 (bin)
2022.05.08 18:52:41.066 5 : mySIGNALduino_WZ: extracted data 1001110101001111001111110111010101010101101000000000 (bin)
2022.05.08 18:52:41.066 5 : mySIGNALduino_WZ Funkbus: raw=zoozozzozozoozzoozzoozozzozozozoozozzozozozozozoozzozozoozzoozzoozzoozzoozzoozzozoozzoozozozozozoz
2022.05.08 18:52:41.067 4 : mySIGNALduino_WZ Funkbus: len=50 bit49=1 parity=0 res=15 chk=15 msg=00101100000101110101111100110000000000001000111111 hex=2C175F30008F
2022.05.08 18:52:41.067 5 : mySIGNALduino_WZ Dispatch: J2C175F30008F, test ungleich: disabled
2022.05.08 18:52:41.068 4 : mySIGNALduino_WZ Dispatch: J2C175F30008F, -67.5 dB, dispatch
2022.05.08 18:52:41.068 5 : mySIGNALduino_WZ: dispatch J2C175F30008F
2022.05.08 18:52:41.069 4 : mySIGNALduino_WZ IFB: typ=43 id=FAE8 state=0011 data=0000000000001000 channel=1 group=A act=D long=0


Danke, lg, Gerhard

Ralf9

#31
Hallo Gerhard,

ZitatLeider zeigt das SIGNALduino-Device im log die empfangenen Daten nicht in dem Format.
Mit dem 10_IFB.pm Modul in der Anlage ist der Funkbus state jetzt gleich wie bei der sendMsg.

2022.05.09 23:26:40.138 4 : sduinoD Dispatch: J2C175F300100, -49 dB, dispatch
2022.05.09 23:26:40.138 4 : sduinoD IFB_Parse: typ=43 id=FAE8 fbState=C_1100 data=0000000000010000 channel=1 group=A act=U long=0
2022-05-09 23:26:40.139 IFB IFB43_FAE8_A_1 on
2022-05-09 23:26:40.139 IFB IFB43_FAE8_A_1 fbState: C_1100
2022-05-09 23:26:40.139 IFB IFB43_FAE8_A_1 action: U
2022-05-09 23:26:40.139 IFB IFB43_FAE8_A_1 long: 0
2022-05-09 23:26:40.139 IFB IFB43_FAE8_A_1 batteryState: ok


Welche Frequenz wird mit "get ccconf" angezeigt? Mit dieser Frequenz wird gesendet.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

gestein

Hallo Ralf,

Danke. Das probiere ich morgen gleich mal.

Das ,,get ccconf" ergibt bei mir:
ccconf: freq:433.420MHz bWidth:325KHz rAmpl:42dB sens:4dB (DataRate:5603.79Baud,Modulation:ASK/OOK)

Lg, Gerhard

gestein

Hallo,

mit ein bisschen Herumspielen kann ich nun das Licht ein- und ausschalten.

Ein: P213#43FAE8CA1US00
Aus: P213#43FAE8CA1DS00

S bzw. L haben bei mir (noch) keine Funktion.

Vielen Dank!
lg, Gerhard

Ralf9

Zitatmit ein bisschen Herumspielen kann ich nun das Licht ein- und ausschalten.
Musstest Du außer dem Status noch was anderes ändern?

Jetzt werde ich erstmal abwarten ob außer Dir noch andere Interesse an SIGNALduino und Funkbus haben.
Das Senden von Longpress ist recht komplex und aufwändig, hier
https://github.com/Thro42/InstaFunkbus
steht
Zitat00 | First package in sequence
10 | package 2 and folow in sequence for short press of a button
01 | package 2 and 3 in sequence for long press of a button
11 | package 4 and folow in sequence for long press of a button
und hier steht, daß es Unterschiede zwischen Dimmer und Rollladen gibt:
Zitat von: chrisz am 18 September 2015, 19:30:22
Für Lange Telegramme zum Beispiel zum Dimmen (Js.....UL.. bzw. Js.....DL... ) wurden in der Version von Jens eigentlich 9 Telegramme ausgesendet, und zwar einmal D oder U mit undefinierter Betätigungsdauer (DU oder UU) und dreimal D oder U mit langer <1s Betätigungsdauer (D1 oder U1) und viermal D oder U mit sehr langer >1s Betätigungsdauer (DL oder UL) und zweimal ein Stopp-Telegramm (S1). Dies war zumindest für meine GIRA Dimmer zu viele sehr lange Telegramme so dass diese immer auf Max bzw. Min fuhren. Dies habe ich jetzt in der anhängenden Firmwareversion gekürzt, so dass die sehr langen Telegramme nicht mehr gesendet werden.

Dies könnte allerdings bei der Steuerung von Rollladen nun Probleme bereiten, da die Rollladen nicht mehr den gesamten Weg fahren. Ein mehrfache Wiederholung des Kommandos könnte Abhilfe schaffen, habe ich aber nicht ausprobiert.

Da ich keine Funkbus Sender und Empfänger habe ist es für mich sehr schwierig das Senden von Longpress einzubauen.
Mir ist auch nicht klar was es mit den Stopbits auf sich hat.
Falls jemand einen Funkbus Empfänger übrig hat, den er nicht mehr benötigt und mir zusenden kann, würde es mir das Einbauen des Longpress Sendens stark vereinfachen.

Das Senden von Lichtszenen ist mir auch noch nicht so richtig klar, wird da eine andere Sequenz verwendet?

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

gestein

#35
Hallo,

den State habe ich vom IFB-Device (C statt B) und geändert habe ich dann das action.

Das Du da abwarten möchtest, verstehe ich.
Dimmen wäre zwar auch nett, aber - für mich - nicht unbedingt notwendig.
Und Szenen hatte ich bis dato auch nicht.

Zum Probieren hätte ich eine Fernbedienung von Berker. https://docplayer.org/41952805-Berker-funkbus-system.html
Die könnte wahrscheinlich sogar Szenen.

Empfänger sind leider alle verbaut und in Verwendung.
Vielleicht hat jemand anders noch einen Empfänger, dann kann ich gerne meine Fernbedienung zur Verfügung stellen.

Vielen herzlichen Dank.
lg, Gerhard

gestein

Hallo Ralf,

ich hätte noch eine Bitte:
Wäre es möglich im IFB-Device noch die folgenden Readings (oder Internals) anzulegen?
t - typ
n - seriennr 16 Bit
s - state
g - Gruppe A-C L
c - Taste  1-8

Dann könnte ich mir ein generisches DOIF für die Lampen basteln, dass die Message für sendMsg aus diesen Werten automatisch zu generieren.
Oder soll ich das aus z.B. der DEF des IFB-Devices nehmen?

Danke im Voraus
lg, Gerhard


Ralf9

Hallo Gerhard,

Diese Werte lassen sich mit split recht einfach aus DEF erzeugen
    my ($typ, $id, $group, $channel) = split('_',$hash->{DEF});
    $typ = substr($typ, 3);


In dem 10_IFB.pm in der Anlage habe ich das set eingebaut:
set IFB43_FAE8_A_2 on
2022.05.11 09:00:05.511 4 : IFB43_FAE8_A_2 IFB_Set: typ=43 id=FAE8 fbState=C group=A channel=2 act=U
2022.05.11 09:00:05.511 3 : IFB43_FAE8_A_2 IFB_Set: sendmsg=P213#43FAE8CA2US00

Es kann sein, daß das Attribut IODev von Hand gesetzt werden muß

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

gestein

Hallo Ralf,

vielen Dank. Cool.
Das erleichtert meine Steuerung auch noch mal.

Inzwischen hatte ich das mit dem Def auch so wie Du umgesetzt  ;)

Habe mal schnell das neue 10_IFB.pm ausprobiert.
Das Ein- und Ausschalten klappt einwandfrei, aber im fhem-Device wird der state beim Ausschalten nicht mehr auf "off" gesetzt.
Das echte Licht wird aber ausgeschalten.

lg, Gerhard

Ralf9

#39
ZitatDas Ein- und Ausschalten klappt einwandfrei, aber im fhem-Device wird der state beim Ausschalten nicht mehr auf "off" gesetzt.
Da hat bei IFB_Set nach IOWrite dies gefehlt:
readingsSingleUpdate($hash, "state", $cmd, 1);
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

gestein

Damit scheint es nun zu funktionieren.
Vielen Dank.

Da ich mehrere Aktoren an einem Empfänger habe, werde ich mir noch ein DOIF oder dummy/notify basteln.
lg, Gerhard

gestein

Hallo Ralf,

Um aus meinem Dummy das Licht einzuschalten, verwende ich nun "InternalVal("$IFB_Dev","IODev","")" um den SIGNALduino zu bekommen.
Allerdings wird nun ein Hash statt eines Namens zurückgeliefert.

Ist das so beabsichtigt?
In meinem DOIF muss ich daher "$hash->{NAME}" aufrufen, um auf das Device zugreifen zu können.
Ich dachte, dass ist eigentlich nicht gewollt.

Weißt Du, ob man über das IFB-Protokoll auch den Status einer Lampe abfragen kann?
In der Beschreibung steht leider dazu nichts.
Ich nehme an, den Befehl gibt es nicht. Oder?

lg, Gerhard

Ralf9

ZitatUm aus meinem Dummy das Licht einzuschalten, verwende ich nun "InternalVal("$IFB_Dev","IODev","")" um den SIGNALduino zu bekommen.
Allerdings wird nun ein Hash statt eines Namens zurückgeliefert.
Der Hash muß in den sduino Namen gewandelt werden, evtl kann da jemand anders weiter helfen.

Du kannst aber anstatt "InternalVal(" auch "ReadingsVal" verwenden um das reading zu lesen.

ZitatWeißt Du, ob man über das IFB-Protokoll auch den Status einer Lampe abfragen kann?
Da ist mir auch nichts bekannt.

Gruß Ralf

 
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ralf9

damit funktionierts auch mit InternalVal
{my $hash=InternalVal("IFB43_FAE8_A_1","IODev","");; my $a=$hash->{NAME};; Log 2, ('val ' . $a)}
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

gestein

Hallo,

Danke. Damit geht's natürlich auch.
Danke auch für den Hinweis mit dem Reading.
Damit klappt es auch ohne Zugriff auf den Hash.

lg, Gerhard