FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: CoolTux am 11 November 2021, 11:26:11

Titel: FHEM2FHEM RAW IOWrite
Beitrag von: CoolTux am 11 November 2021, 11:26:11
Hallo,

Ich versuche gerade über zwei FHEM Instanzen eine gemeinsame Kommunikation. Für Module mit Dispatcher soll das ja mit FHEM2FHEM Raw gehen. Soweit so gut.
Einrichten hat geklappt, Kommunikation ist vorhanden und Geräte werden auf Instanz A angelegt welche von Instanz B auf dem das eigentliche IO Device liegt übermittelt werden.

In meinem Fall ist es 73_NUKIBridge.pm auf Instanz B und 74_NUKIDevice.pm auf Instanz A.
Es werden fleißig Zustandsänderungen von Instanz A empfangen. Aber wenn ich nun schalten will klappt das nicht. Ein set Befehl von Instanz A kommt nicht korrekt an Instanz B an. Grund ist hier wohl eine Einschränkung beim IOWrite.

Ich rufe in 74_NUKIDevice IOWrite wie folgt auf

IOWrite( $hash, 'lockAction', $lockAction, $hash->{NUKIID},
        $hash->{DEVICETYPE} );



Leider kommt am anderen Ende auf Instanz B in der entsprechenden Fn_Write nur folgendes an

sub Write($@) {
    my ( $hash, $endpoint, $param, $nukiId, $deviceType ) = @_;
.....
.....


es kommt $hash an mit Wert, es kommt $endpoint an mit Wert und es kommt $param an mit Wert. Aber alles weitere ist leer.
In einer gemeinsamen Umgebung geht es alles natürlich. Es muss also am RAW Transport liegen. Finde nur nicht wo und wie.



Grüße
Titel: Antw:FHEM2FHEM RAW IOWrite
Beitrag von: CoolTux am 11 November 2021, 12:39:41
Ich bin da ein Schritt weiter gekommen. Anscheinend dürfen keine Leerzeichen enthalten sein. So geht es

IOWrite( $hash, 'lockAction', '{"lockAction":"' . $lockAction . '","nukiId":' . $hash->{NUKIID} . ',"deviceType":' . $hash->{DEVICETYPE} . '}' );

Und ganz wichtig der Datenstring darf keine Leerzeichen besitzen.
Titel: Antw:FHEM2FHEM RAW IOWrite
Beitrag von: CoolTux am 11 November 2021, 13:05:33
Oh Freude es geht nun endlich. Muss zwar das Modul umschreiben aber immer hin spar ich mir das anpassen von Routingtabellen.


Jetzt muss ich nur noch überlegen wie ich Nanoleafe ans rennen bekomme.
Titel: Antw:FHEM2FHEM RAW IOWrite
Beitrag von: rudolfkoenig am 11 November 2021, 14:31:13
Ich meine Leerzeichen darf sein (eigentlich darf alles ausser Newline), nur beim Aufruf von IOWrite darf man nicht mehr als zwei Parameter uebergeben, was eher ein Bug in FHEM2FHEM ist.
Das ist pure Theorie, da ich kein Testsystem zum Verifizieren aufgebaut habe.
Titel: Antw:FHEM2FHEM RAW IOWrite
Beitrag von: CoolTux am 11 November 2021, 16:15:54
Ich habe es ausgiebig getestet gehabt und bin recht sicher das Leerzeichen nicht funktionierten.
Das mit IOWrite nur 2 Parameter trifft aber nur bei FHEM2FHEM zu oder? Denn ich konnte immer mehr Parameter an IOWrite übergeben. Probleme kamen erst durch FHEM2FHEM auf.
Titel: Antw:FHEM2FHEM RAW IOWrite
Beitrag von: rudolfkoenig am 11 November 2021, 16:40:30
ZitatDas mit IOWrite nur 2 Parameter trifft aber nur bei FHEM2FHEM zu [...]?
Ja.