Xiaomi Smart Home Komponenten

Begonnen von FosCo, 21 Dezember 2016, 18:59:59

Vorheriges Thema - Nächstes Thema

mahowi

Ich weiß, ich nerve bestimmt so langsam.  ;)
Ich habe dann eben mal einen Smart Plug in der Bridge eingebunden, über die App. Dann habe ich in FHEM über das Modul nach neuen Geräten suchen lassen. Damit hab ich FHEM mal wieder in eine Restart-Schleife geschickt.  :o
Im Log taucht nur (nach längerer Wartezeit) das hier auf:
recv: Unterbrechung während des Betriebssystemaufrufs at ./FHEM/71_XiaomiSmartHome.pm line 166.
Zeile 166 ist:
        $sidsock->recv($msg, 1024)  or die "recv: $!";

Ich musste meinen Router neu starten. Scheinbar kann der Hostname des Gateways danach nicht mehr aufgelöst werden.



So, nach einigen (automatischen) Neustarts von FHEM läuft es wieder und das Device geht auf Disconnected. Scheinbar blockiert das Modul zu lange und FHEM startet neu, bevor das Gerät auf Disconnected gesetzt wird.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

torte

Zitat von: hijo am 27 April 2017, 18:02:19
Hallo Torte,
also das mit dem Cube hat sich erledigt. Geht jetzt sehr gut!
Das ist das Log vom Schalter:
2017.04.27 17:59:31 3: xiaomi: Unknown code {"cmd":"report","model":"86sw2","sid":"158d0001289047","short_id":32963,"data":"{\"channel_1\":\"click\"}"}, help me!
2017.04.27 17:59:35 3: xiaomi: Unknown code {"cmd":"report","model":"86sw2","sid":"158d0001289047","short_id":32963,"data":"{\"channel_0\":\"click\"}"}, help me!

Danke

Hi hijo,

alles klar denn kann ich noch mit einbauen sollte kein großes Ding werden.  Mal sehen ob ich das dieses WE noch raus bekomme.



@Manny
Zitat von: mahowi am 27 April 2017, 18:50:41
recv: Unterbrechung während des Betriebssystemaufrufs at ./FHEM/71_XiaomiSmartHome.pm line 166.
Zeile 166 ist:
        $sidsock->recv($msg, 1024)  or die "recv: $!";


So, nach einigen (automatischen) Neustarts von FHEM läuft es wieder und das Device geht auf Disconnected. Scheinbar blockiert das Modul zu lange und FHEM startet neu, bevor das Gerät auf Disconnected gesetzt wird.

Ich denke da kann man den Fehler noch abfangen das FHEM etwas schneller auf Disconnect geht. Aber so lange der FHEM Server die neue IP nicht über DNS auflösen kann
bleibt er auf DISCONNECT, es gibt im Modul auch nach einem Disconnect keine Funktion die zyklisch die Verbindung versucht wieder auf zu bauen. Erst wenn jemand am Device
auslöst LED einschalten versucht das Modul es noch mal.

Du kannst ja gucken im LOG steht beim Write und beim Connect immer drin ob das GW über IP erreichbar war/ist.
Ich kann nicht ganz verstehen warum du dem GW nicht eine feste IP im DHCP zuweisen kannst 8)

Viele Grüße
Torte


gt_im

Zitat von: hijo am 27 April 2017, 18:11:21
Und noch was. Die Schalter antworten ja alle mit einem "click". Kein "Ein" und "Aus". Alles was sich ändert ist der Event, richtig?
Irgendwie sind da meine FHEM Kenntnisse noch nicht so groß wie man das jetzt mit anderen Komponenten einbindet.
Wäre schön, wenn ihr eure Codeschnipsel hier reinhängen könnt, wie man z.B. eine Hue Lampe damit steuert oder eine Homematic Steckdose ein und ausschaltet.  :)

Danke schon mal.

hier ein beispiel fuer ein notify,welches bei einem schalter namens MiSwitch3 das click faengt und dann eine lampe ausschaltet, kannst du direkt in der befehlszeile von fhem eingeben (natuerlich mit deinen devicenamen):
define MiSwitch3.click_notify notify MiSwitch3:click set UZ.Deckenfluter off

mahowi

Ich würde dem Teil gerne eine feste IP zuweisen. Da ich aber hier mangels Alternativen DSL Hybrid der Telekom fürs Internet habe, bin ich auf deren Router angewiesen. Und im Speedport kann ich keine IPs zuweisen. Andere Router für DSL Hybrid gibt es nicht und ich möchte auch keine zusätzliche Fritz!Box in den Flur hängen.
Und im Xiaomi Gateway habe ich bisher keine Möglichkeit gefunden, von DHCP auf feste IP umzustellen.

Das Hauptproblem ist eigentlich nicht, daß das Gateway nicht gefunden wird. Das könnte ich erstmal verschmerzen. Mein Problem ist, daß das Modul FHEM komplett blockiert, wenn es kein Gateway findet.
Ich starte FHEM normalerweise über systemd, daher kommt auch der Neustart nach einem gewissen Timeout. Jetzt habe ich es von Hand gestartet und seit mittlerweile 16 Minuten steht FHEM und es tut sich nichts mehr.

Ich habe jetzt erstmal die Module  aus dem Ordner entfernt und FHEM läuft wieder.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

tterrafan

Meine Geräte sind nun alle angekommen und wurden erfolgreich eingebunden.
Was mir jedoch auffällt: Wenn ich die Geräte umbenenne, funktionieren sie nach einer Weile nicht mehr und das Gerät mit dem ursprünglichen Name wird neu angelegt. Kann man das verhindern?

zum Bewegungsmelder:
Als Test hatte ich eingestellt, dass bei erkannter Bewegung das Licht für 40 Sekunden angehen soll. Jedoch sind die 40 Sekunden fix, wenn ich mich also 2 Minuten in dem Raum mit dem Bewegungsmelder bewege, geht das Licht dennoch nach 40 Sekunden aus (statt 2min 40 sek).
Wie habt ihr das gelöst, sodass das Licht erst dann ausgeht, sobald auch keine Bewegung mehr registriert wird?

Mein bisheriges Notify:
define bewegung_FlurLichtAn notify Sensor_Flur:motion {fhem ("set Licht_Flur on-for-timer 40")}

torte

#230
Zitat von: tterrafan am 28 April 2017, 00:30:19
Meine Geräte sind nun alle angekommen und wurden erfolgreich eingebunden.
Was mir jedoch auffällt: Wenn ich die Geräte umbenenne, funktionieren sie nach einer Weile nicht mehr und das Gerät mit dem ursprünglichen Name wird neu angelegt. Kann man das verhindern?

zum Bewegungsmelder:
Als Test hatte ich eingestellt, dass bei erkannter Bewegung das Licht für 40 Sekunden angehen soll. Jedoch sind die 40 Sekunden fix, wenn ich mich also 2 Minuten in dem Raum mit dem Bewegungsmelder bewege, geht das Licht dennoch nach 40 Sekunden aus (statt 2min 40 sek).
Wie habt ihr das gelöst, sodass das Licht erst dann ausgeht, sobald auch keine Bewegung mehr registriert wird?

Mein bisheriges Notify:
define bewegung_FlurLichtAn notify Sensor_Flur:motion {fhem ("set Licht_Flur on-for-timer 40")}

Namen:
Welche Version vom Modul hast du? Das Problem ist schon länger eigentlich  behoben, Ich habe meine auch umbenannt und sind seit dem immer gleichen Namens.
Gateway 0.10 Devices 0.11

Bewegunsmelder:
Ich hab sowas ähnliches so gelöst.

define bewegung_FlurLichtAn notify Sensor_Flur:motion {fhem ("defmod AT.WZ.LED at +00:02:00 set WZ.LED dimdown 100 60")}

Grüße
Torte

mahowi

Hier mal mein Notify für einen Bewegungssensor:
defmod n_flur.motion notify flur.motion:on.* {\
if (ReadingsVal("ZWave_SWITCH_BINARY_6", "reportedState", "") eq "off") {\
  fhem ("set ZWave_SWITCH_BINARY_6 on ;; defmod at_flur_licht_aus at +00:01:30 set ZWave_SWITCH_BINARY_6,flur.motion off");;\
  } else {\
  fhem ("defmod at_flur_licht_aus at +00:01:30 set ZWave_SWITCH_BINARY_6,flur.motion off");;\
  }\
}

Wenn die Lampe aus ist, wird sie eingeschaltet. Falls sie schon an war, wird die Einschaltzeit bei jeder Bewegung um 1,5 Minuten verlängert. Dabei wird der Bewegungsmelder immer mit zurück gesetzt.
Das hat aber eigentlich nix mit den Xiaomi Geräten zu tun.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

hanswerner1

Hast jemand Alexa mit Xiaomi laufen ?
Seit ich das Xiaomi Gateway installiert habe läuft Alexa nicht mehr.
Bekomme beim start von alexa die Fehlermeldung:
Zitat
/opt/alexa-fhem/node_modules/nat-upnp/node_modules/async/dist/async.js:105
      ( }
        ^

SyntaxError: Unexpected token }
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/opt/alexa-fhem/node_modules/nat-upnp/lib/nat-upnp/cl      ient.js:2:13)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10


slawekking

Hi,

habe heute ein Paar Xiaomi Smarthome Komponenten bekommen.

Die Module haben auf Anhieb sofort funktioniert super Arbeit. Leider habe ich Probleme mit dem Status der  Bewegungsmelder. Dieser hat immer den Status motion außer nach einem shutdown restart. Die no_motion Zeit wird korekt angezeigt auch die Bewegung in der MI App.

Hat einer von euch Profis eine Idee?
   
XiaomiSmartHome_Device VERSION 0.11
XiaomiSmartHome VERSION 0.10

Bitte um Rückmeldung.

Danke im Voraus

Gru0

christoph

torte

Zitat von: slawekking am 28 April 2017, 23:03:23
Hat einer von euch Profis eine Idee?
Hi Christoph,
das Attribut motionOffTimer setzten  :D ( steht auch im GIT Wiki)

@hanswerner1
keine Ahnung würde ich mal beim dem Modul Betreiber von Alexa fragen die Fehlermeldung sagt nicht sonderlich viel aus.
Das Xiaomi Modul nutz port 9898 und 4321 und öffnet dort eine socket Verbindung wenn alexa da auch was macht kann es zu einem
Problem kommen, weiß ich aber nicht.


Wer möchte kann ein Update installieren ist gerade frisch auf dem Git eingetroffen.

add: brightness support for gateway led
add: support for swicht 86sw2
add: support gateway with hostname
add: check missing perl modules
fix: if no password set
fix: gateway support if disconnects
fix: gateway sid not anymore as reading
change: voltage now battery for fhem battery control
change: motionOffTime now as parameter


Grüße
Torte

Morrino

Zitat von: torte am 28 April 2017, 23:14:03



Wer möchte kann ein Update installieren ist gerade frisch auf dem Git eingetroffen.

add: brightness support for gateway led
add: support for swicht 86sw2
add: support gateway with hostname
add: check missing perl modules
fix: if no password set
fix: gateway support if disconnects
fix: gateway sid not anymore as reading
change: voltage now battery for fhem battery control
change: motionOffTime now as parameter


Grüße
Torte

Hi,

ich habe seit 2-3 Wochen nichts mehr an meiner FHEM Installation geändert. Außer heute morgen das Update hier gezogen.
Seitdem erreiche ich FHEM nicht mehr. Ob es jetzt wirklich daran liegt kann ich aber noch nicht genau sagen. Auch da ich heute keine Zeit habe es zu untersuchen.

Im Log taucht am Ende nur folgende Zeile auf:
"send: Invalid argument at ./FHEM/71_XiaomiSmartHome.pm line 184."

Gruße

MothersFinest


Update übernommen, ich hatte ja schon die Zwischenversion von Dir drauf.

Multi-Gateway Situation hat sich auf den ersten Blick nicht verändert, hatte ich aber auch noch nicht erwartet. Tatsächlich verstehe ich das Modul an dieser Stelle nicht ausreichend gut.
Drei Gateways sprechen den gleichen Server-Port an und eine Erkennung/Berücksichtigung, von welchem Gateway die Nachricht kommt, sehe ich nicht. Da kann man schon mal mit den Token durcheinander geraten ...
Dafür funktioniert erstaunlich viel (eigentlich alles), nur halt das Gateway selber macht Probleme beim Schalten.

Eine Kleinigkeit ist m.E. neu:
Wenn ich einen Plug schalte, klappt das einwandfrei, es kommt aber "Unknown argument power, choose one of power".

Guß
Oliver


MothersFinest



Besser "elsif" statt "if" evtl.?


if($cmd eq "power")
{
   if($args[0] eq "on")
   {
IOWrite($hash,"power","on",$hash);
   }
   elsif($args[0] eq "off")
   {
IOWrite($hash,"power","off",$hash);
   }
}
elsif($cmd eq "open")
{
readingsSingleUpdate($hash, "state", "open", 1 );
return;
}
elsif($cmd eq "motionOffTimer")
{
readingsSingleUpdate($hash, "motionOffTimer", "$args[0]", 1 );;
return;
}
else
{
return "Unknown argument $cmd, choose one of $setlist";
}


torte

Zitat von: MothersFinest am 29 April 2017, 14:52:30

Besser "elsif" statt "if" evtl.?


if($cmd eq "power")
{
   if($args[0] eq "on")
   {
IOWrite($hash,"power","on",$hash);
   }
   elsif($args[0] eq "off")
   {
IOWrite($hash,"power","off",$hash);
   }
}
elsif($cmd eq "open")
{
readingsSingleUpdate($hash, "state", "open", 1 );
return;
}
elsif($cmd eq "motionOffTimer")
{
readingsSingleUpdate($hash, "motionOffTimer", "$args[0]", 1 );;
return;
}
else
{
return "Unknown argument $cmd, choose one of $setlist";
}

Häng mir bitte ein Fhem Log in Verbose 5 mit den Zeilen hier rein. Hab ja selber kein Plug 🤔
Bitte auch bei anderen Fehlern immer das Fhem Log in Verbose 5 Dankeschön​ gucke mir das dann mal an, komme aber erst Sonntag Abend wieder dazu

Grüße
Torte


Gesendet von meinem Pixel XL mit Tapatalk


MothersFinest

Verbose 5 hatte ich jetzt mal abgeschaltet, die Logs sind doch etwas unhandlich.  ;)
Wie geschrieben ist der einzige Fehler eine Meldung in der FHEM Oberfläche, im Log sehe ich davon nichts (1 x Off/1 x On unzensiert).


2017.04.29 20:27:22 3: MIgateway1: Write> {"cmd":"write","model":"plug","sid":"158d00010ac93a","data":"{\"status\":\"off\",\"key\":\"207e2ec6d5fdc10c4d61f55b8ed07ed3\"}" } 10.1.1.80
2017.04.29 20:27:22 5: MIgateway1: Write> End 10.1.1.80
2017.04.29 20:27:22 5: MIgateway3: Read> Read start
2017.04.29 20:27:22 5: MIgateway3: Read> {"cmd":"write_ack","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"voltage\":3600,\"status\":\"on\",\"inuse\":\"1\",\"power_consumed\":\"85\",\"load_power\":\"6\"}"}
2017.04.29 20:27:22 4: MIgateway3: Read> Write answer 10.1.1.85
2017.04.29 20:27:22 5: MIgateway1: Read> Read start
2017.04.29 20:27:22 5: MIgateway1: Read> {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"off\"}"}
2017.04.29 20:27:22 4: MIgateway1: Read> dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"off\"}"}
2017.04.29 20:27:22 5: MIgateway1: dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\\"status\\":\\"off\\"}"}
2017.04.29 20:27:22 4: MIgateway1: DEV_Parse> IS DEFINED plug : 158d00010ac93a
2017.04.29 20:27:22 5: MIgateway1: DEV_Read> SID: 158d00010ac93a XiaomiSmartHome_Device
2017.04.29 20:27:22 3: MIgateway1: DEV_Read> SID: 158d00010ac93a Type: plug Status: off
2017.04.29 20:27:22 5: MIgateway3: Read> Read start
2017.04.29 20:27:22 5: MIgateway3: Read> {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"off\"}"}
2017.04.29 20:27:22 4: MIgateway3: Read> dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"off\"}"}
2017.04.29 20:27:22 5: MIgateway3: dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\\"status\\":\\"off\\"}"}
2017.04.29 20:27:22 5: MIgateway2: Read> Read start
2017.04.29 20:27:22 5: MIgateway2: Read> {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"off\"}"}
2017.04.29 20:27:22 4: MIgateway2: Read> dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"off\"}"}
2017.04.29 20:27:22 5: MIgateway2: dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\\"status\\":\\"off\\"}"}
2017.04.29 20:27:25 5: MIgateway1: Read> Read start
2017.04.29 20:27:25 5: MIgateway1: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c07888bee","short_id":"0","token":"1X62942mdpWpOIGN","data":"{\"ip\":\"10.1.1.85\"}"}
2017.04.29 20:27:25 4: MIgateway1: Read> IP-Heartbeat Data didnt match! 10.1.1.85  10.1.1.80
2017.04.29 20:27:25 5: MIgateway3: Read> Read start
2017.04.29 20:27:25 5: MIgateway3: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c07888bee","short_id":"0","token":"1X62942mdpWpOIGN","data":"{\"ip\":\"10.1.1.85\"}"}
2017.04.29 20:27:25 5: MIgateway2: Read> Read start
2017.04.29 20:27:25 5: MIgateway2: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c07888bee","short_id":"0","token":"1X62942mdpWpOIGN","data":"{\"ip\":\"10.1.1.85\"}"}
2017.04.29 20:27:25 4: MIgateway2: Read> IP-Heartbeat Data didnt match! 10.1.1.85  10.1.1.84
2017.04.29 20:27:27 5: MIgateway1: Read> Read start
2017.04.29 20:27:27 5: MIgateway1: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c0788ac85","short_id":"0","token":"W51Gc0ZfsYI3JGac","data":"{\"ip\":\"10.1.1.80\"}"}
2017.04.29 20:27:27 5: MIgateway2: Read> Read start
2017.04.29 20:27:27 5: MIgateway2: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c0788ac85","short_id":"0","token":"W51Gc0ZfsYI3JGac","data":"{\"ip\":\"10.1.1.80\"}"}
2017.04.29 20:27:27 4: MIgateway2: Read> IP-Heartbeat Data didnt match! 10.1.1.80  10.1.1.84
2017.04.29 20:27:27 5: MIgateway3: Read> Read start
2017.04.29 20:27:27 5: MIgateway3: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c0788ac85","short_id":"0","token":"W51Gc0ZfsYI3JGac","data":"{\"ip\":\"10.1.1.80\"}"}
2017.04.29 20:27:27 4: MIgateway3: Read> IP-Heartbeat Data didnt match! 10.1.1.80  10.1.1.85
2017.04.29 20:27:27 5: MIgateway1: Read> Read start
2017.04.29 20:27:27 5: MIgateway1: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c0788bc90","short_id":"0","token":"IRJzZckEaLRE2iOP","data":"{\"ip\":\"10.1.1.84\"}"}
2017.04.29 20:27:27 4: MIgateway1: Read> IP-Heartbeat Data didnt match! 10.1.1.84  10.1.1.80
2017.04.29 20:27:27 5: MIgateway2: Read> Read start
2017.04.29 20:27:27 5: MIgateway2: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c0788bc90","short_id":"0","token":"IRJzZckEaLRE2iOP","data":"{\"ip\":\"10.1.1.84\"}"}
2017.04.29 20:27:27 5: MIgateway3: Read> Read start
2017.04.29 20:27:27 5: MIgateway3: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c0788bc90","short_id":"0","token":"IRJzZckEaLRE2iOP","data":"{\"ip\":\"10.1.1.84\"}"}
2017.04.29 20:27:27 4: MIgateway3: Read> IP-Heartbeat Data didnt match! 10.1.1.84  10.1.1.85
2017.04.29 20:27:31 5: MIgateway1: Read> Read start
2017.04.29 20:27:31 5: MIgateway1: Read> {"cmd":"heartbeat","model":"magnet","sid":"158d0001584131","short_id":38129,"data":"{\"voltage\":3065,\"status\":\"close\"}"}
2017.04.29 20:27:31 4: MIgateway1: Read> dispatch {"cmd":"heartbeat","model":"magnet","sid":"158d0001584131","short_id":38129,"data":"{\"voltage\":3065,\"status\":\"close\"}"}
2017.04.29 20:27:31 5: MIgateway1: dispatch {"cmd":"heartbeat","model":"magnet","sid":"158d0001584131","short_id":38129,"data":"{\\"voltage\\":3065,\\"status\\":\\"close\\"}"}
2017.04.29 20:27:31 4: MIgateway1: DEV_Parse> IS DEFINED magnet : 158d0001584131
2017.04.29 20:27:31 5: MIgateway1: DEV_Read> SID: 158d0001584131 XiaomiSmartHome_Device
2017.04.29 20:27:31 3: MIgateway1: DEV_Read> SID: 158d0001584131 Type: magnet Status: close
2017.04.29 20:27:31 3: MIgateway1: DEV_Read> SID: 158d0001584131 Type: magnet Voltage: 3065
2017.04.29 20:27:31 5: MIgateway3: Read> Read start
2017.04.29 20:27:31 5: MIgateway3: Read> {"cmd":"heartbeat","model":"magnet","sid":"158d0001584131","short_id":38129,"data":"{\"voltage\":3065,\"status\":\"close\"}"}
2017.04.29 20:27:31 4: MIgateway3: Read> dispatch {"cmd":"heartbeat","model":"magnet","sid":"158d0001584131","short_id":38129,"data":"{\"voltage\":3065,\"status\":\"close\"}"}
2017.04.29 20:27:31 5: MIgateway3: dispatch {"cmd":"heartbeat","model":"magnet","sid":"158d0001584131","short_id":38129,"data":"{\\"voltage\\":3065,\\"status\\":\\"close\\"}"}
2017.04.29 20:27:31 5: MIgateway2: Read> Read start
2017.04.29 20:27:31 5: MIgateway2: Read> {"cmd":"heartbeat","model":"magnet","sid":"158d0001584131","short_id":38129,"data":"{\"voltage\":3065,\"status\":\"close\"}"}
2017.04.29 20:27:31 4: MIgateway2: Read> dispatch {"cmd":"heartbeat","model":"magnet","sid":"158d0001584131","short_id":38129,"data":"{\"voltage\":3065,\"status\":\"close\"}"}
2017.04.29 20:27:31 5: MIgateway2: dispatch {"cmd":"heartbeat","model":"magnet","sid":"158d0001584131","short_id":38129,"data":"{\\"voltage\\":3065,\\"status\\":\\"close\\"}"}
2017.04.29 20:27:31 3: MIgateway1: Write> {"cmd":"write","model":"plug","sid":"158d00010ac93a","data":"{\"status\":\"on\",\"key\":\"311e0c293f666d18370cc4b574696c86\"}" } 10.1.1.80
2017.04.29 20:27:31 5: MIgateway1: Write> End 10.1.1.80
2017.04.29 20:27:31 5: MIgateway3: Read> Read start
2017.04.29 20:27:31 5: MIgateway3: Read> {"cmd":"write_ack","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"voltage\":3600,\"status\":\"off\",\"inuse\":\"0\",\"power_consumed\":\"85\",\"load_power\":\"0\"}"}
2017.04.29 20:27:31 4: MIgateway3: Read> Write answer 10.1.1.85
2017.04.29 20:27:31 5: MIgateway2: Read> Read start
2017.04.29 20:27:31 5: MIgateway2: Read> {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"on\"}"}
2017.04.29 20:27:31 4: MIgateway2: Read> dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"on\"}"}
2017.04.29 20:27:31 5: MIgateway2: dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\\"status\\":\\"on\\"}"}
2017.04.29 20:27:31 4: MIgateway2: DEV_Parse> IS DEFINED plug : 158d00010ac93a
2017.04.29 20:27:31 5: MIgateway2: DEV_Read> SID: 158d00010ac93a XiaomiSmartHome_Device
2017.04.29 20:27:31 3: MIgateway2: DEV_Read> SID: 158d00010ac93a Type: plug Status: on
2017.04.29 20:27:31 5: MIgateway3: Read> Read start
2017.04.29 20:27:31 5: MIgateway3: Read> {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"on\"}"}
2017.04.29 20:27:31 4: MIgateway3: Read> dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"on\"}"}
2017.04.29 20:27:31 5: MIgateway3: dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\\"status\\":\\"on\\"}"}
2017.04.29 20:27:31 5: MIgateway1: Read> Read start
2017.04.29 20:27:31 5: MIgateway1: Read> {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"on\"}"}
2017.04.29 20:27:31 4: MIgateway1: Read> dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\"status\":\"on\"}"}
2017.04.29 20:27:31 5: MIgateway1: dispatch {"cmd":"report","model":"plug","sid":"158d00010ac93a","short_id":6412,"data":"{\\"status\\":\\"on\\"}"}
2017.04.29 20:27:35 5: MIgateway2: Read> Read start
2017.04.29 20:27:35 5: MIgateway2: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c07888bee","short_id":"0","token":"MVHBuopwOAJeCUgA","data":"{\"ip\":\"10.1.1.85\"}"}
2017.04.29 20:27:35 4: MIgateway2: Read> IP-Heartbeat Data didnt match! 10.1.1.85  10.1.1.84
2017.04.29 20:27:35 5: MIgateway3: Read> Read start
2017.04.29 20:27:35 5: MIgateway3: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c07888bee","short_id":"0","token":"MVHBuopwOAJeCUgA","data":"{\"ip\":\"10.1.1.85\"}"}
2017.04.29 20:27:35 5: MIgateway1: Read> Read start
2017.04.29 20:27:35 5: MIgateway1: Read> {"cmd":"heartbeat","model":"gateway","sid":"286c07888bee","short_id":"0","token":"MVHBuopwOAJeCUgA","data":"{\"ip\":\"10.1.1.85\"}"}
2017.04.29 20:27:35 4: MIgateway1: Read> IP-Heartbeat Data didnt match! 10.1.1.85  10.1.1.80


Schaust Du Dir Deinen original Code an, wirst Du sequentielle IFs sehen, trotz Treffer kommt bei "power" am Ende dann die Fehlermeldung über den "else" Zweig von "motionOffTimer". Mein Vorschlag mit "elsif" läuft nicht durch das abschließende "else", aber natürlich ist es nur ein Vorschlag.

Gruß
Oliver