deconz push api (offiziell)

Begonnen von justme1968, 12 Dezember 2017, 20:36:20

Vorheriges Thema - Nächstes Thema

dwi

Moin,
Ich bin vor ein paar Wochen auch auf RaspBee vom Dresden electronics umgestiegen, vor allem um meine busch jäger zll Schalter in fhem nutzen zu können. Theoretisch funktioniert es auch ganz gut mit der push api. Allerdings dauert es bei mir manchmal bis zu 5s bevor die Lichter auf einen Tastendruck reagieren. Das ist für den WAF nicht hilfreich.

Anbei ein List vom RaspBee:
Internals:
   DEF        1.2.3.4
   FD         5
   INTERVAL   60
   NAME       RaspBee
   NOTIFYDEV  global
   NR         70
   NTFY_ORDER 50-RaspBee
   PORT       41284
   STATE      connected
   TYPE       HUEBridge
   apiversion 1.0.9
   buf       
   host       1.2.3.4
   mac        aa:bb:cc:dd:ee:ff
   manufacturer Royal Philips Electronics
   modelName  Philips hue bridge 2012
   modelid    deCONZ
   name       Hue Network
   swversion  2.5.40
   updatestate 0
   websocket  1
   websocketport 443
   zigbeechannel 25
   READINGS:
     2018-11-19 21:25:59   lastError       resource, /lights/23, not available
     2018-11-22 20:52:55   state           connected
   helper:
     apiversion 65545
     count      0
     last_config_timestamp 1542916373
     offsetUTC  3600
     updatestate 0
Attributes:
   createGroupReadings 1
   httpUtils  1
   icon       hue_bridge
   key        <abcdeffff>
   noshutdown 1
   queryAfterSet 1
   room       Administration
   verbose    1


Drücke ich einen Schalter (bj zll oder auch hue tap) ändert sich in der Rest api vom RaspBee sofort der state. Im fhem bleibt aber manchmal der alte für wenige Sekunden drinne bevor der neue da steht. Meistens klappt es innerhalb von einer Sekunde, aber die Ausreißer stören ein wenig.
Ist meine Konfiguration korrekt? Muss ich für die push api noch etwas machen? Hat jemand anderes auch das Problem und ggf eine Idee?
Ich habe auf die Status Änderungen pro Schalter einen notify, der entsprechend des Status Codes fhem lightscenes schaltet. Aber diese verzögern eigentlich nicht, der state in fhem wird einfach nicht 'in nahezu Echtzeit' aktualisiert.

Ich habe deconz in Version 2.5.40 mit Firmware 26260500.

Viele Grüße
dwi

Starsurfer

Moin,
ich benutze auch den Conbee Stick, wenn ich es nicht falsch verstanden habe, werden neue Devices automatisch angelegt?
Wenn ich autocreate ausführe, wird mir immer Create 0 Devices angezeigt, auch wenn neue vorhanden sind. Ist jetzt nicht problematisch, da ich die bisher von Hand angelegt habe.
Allerdings habe ich Probleme mit dem Aquara Bewegungsmelder, den habe ich angelegt State steht aber immer auf unreachable, es gibt kein Motion Reading, Bewegungen werden aber in der Phoscon App angezeigt?

List Device:
Internals:
   CFGFN     
   DEF        13  IODev=deCONZ
   ID         13
   INTERVAL   
   IODev      deCONZ
   NAME       Bewegungsmelder_01
   NR         62274
   STATE      Initialized
   TYPE       HUEDevice
   desired    1
   manufacturername LUMI
   modelid    lumi.sensor_motion.aq2
   name       Bewegungsmelder_01
   type       ZHAPresence
   uniqueid   00:15:8d:00:02:b5:d1:76-01-0406
   READINGS:
     2018-12-19 22:05:58   pct             100
     2018-12-19 21:21:52   state           unreachable
   helper:
     alert     
     bri        -1
     colormode 
     ct         -1
     devtype   
     effect     
     hue        -1
     on         -1
     pct        -1
     reachable  0
     rgb       
     sat        -1
     update_timeout 1
     xy         
Attributes:
   DbLogExclude .*
   IODev      deCONZ
   devStateIcon motion:motion_detector@red off:motion_detector@green no_motion:motion_detector@green
   event-on-change-reading .*
   icon       motion_detector@blue
   model      lumi.sensor_motion.aq2
   room       HUEDevice
   timestamp-on-change-reading state
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

Starsurfer

Hm hat sich erledigt. Der Bewegungsmelder war falsch angelegt. Jetzt funktioniert es.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

Starsurfer

Ich nochmal, stehe heute irgendwie auf dem Schlauch.
Muß ich für das LUX Reading des Bewegungsmelders ein zweites Device anlegen, oder bekomme ich das Reading irgendwie mit zum Bewegungsmelder?
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

sinus61

Das hat eine andere Sensor ID, also ein zweites Device. Kann man dann bei Bedarf mit Userreadings zusammenfassen.

Starsurfer

FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

habl

Zitat von: Starsurfer am 20 Dezember 2018, 08:22:32
Hm hat sich erledigt. Der Bewegungsmelder war falsch angelegt. Jetzt funktioniert es.

hab momentan das gleiche Problem, wie wird er denn richtig angelegt?

Starsurfer

Mit get DEINDECONZ sensors nach ZHAPresence suchen. Dort sollte motion oder nomotion ausgegeben werden.

Hier mal das Beispiel:
defmod Bewegungsmelder_Kueche HUEDevice sensor 12  IODev=deCONZ
attr Bewegungsmelder_Kueche DbLogExclude .*
attr Bewegungsmelder_Kueche IODev deCONZ
attr Bewegungsmelder_Kueche event-on-change-reading .*
attr Bewegungsmelder_Kueche room HUEDevice
attr Bewegungsmelder_Kueche timestamp-on-change-reading state


FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

habl

Danke für deine Info.

ich habe mich von dem deutschen "Bewegungsmelder" irritieren lassen ::) Richtig ist natürlich Presence 3 zu nehmen.


ID  NAME            FHEM            TYPE               
1: Daylight                        Daylight           
2: Bewegungsmelder                 ZHALightLevel       
3: Presence 3                      ZHAPresence         



Weiss doch jeder, dass ein Bewegungsmelder nur die Helligkeit messen kann  8)

rdi

#114
EDIT: Hat sich erledigt, nach mehrfachem Neustart und Update läuft die Kommunikation jetzt über Websocket

Falls sich noch jemand fragen sollte, wie man das auf einen Blick prüfen kann:

HueBridge (deConz) auswählen, Internals, websocket = 1. Dieser Eintrag fehlte bei mir bis dato völlig.

Viele Grüße!




Hier mein ursprüngliches Problem:

Hallo zusammen,

sorry, falls ich etwas offensichtliches übersehen sollte. Ich stehe mit FHEM noch ganz am Anfang.

Ich habe jetzt diesen Thread und die Anleitung auf coldcorner komplett durchgearbeitet und schaffe es irgendwie trotzdem nicht eine Push-Verbindung herzustellen.

Mein aktuelles Setup sieht wie folgt aus:
- deConz mit ConBee und FHEM auf einem Raspberry Pi
- Einige Hue-Lampen und Aqara-Sensoren erfolgreich in der Phoscon App gebunden
- Verbindung zu deConz als HueBridge erfolgreich hergestellt anhand der Anleitung auf coldcorner
- Hue-Lampen wurden automatisch gefunden und hinzugefuegt
- Xiaomi-Sensoren manuell hinzugefuegt wie auf coldcorner. Werte werden bereitgestellt und sind plausibel
- Attribut httpUtils 1 für deconz gesetzt

Was hier augenscheinlich nicht passiert, ist eine Push-Kommunikation über Websocket. Zustandsänderungen (z.B. der Hue-Lampen) kommen erst mit dem nächsten Periodischen Update (1/min) in FHEM an.

Wie kann ich sicherstellen, dass FHEM das Push-Api von deCONZ nutzt?

Vielen Dank!

Edit:

das deConz-Websocket-API funktioniert einwandfrei, es sieht für mich wirklich so aus, als würde sich FHEM nicht auf das WebSocket-API verbinden, sondern auf das standard REST-API


Mirak

Zitat von: Ullulaki am 15 November 2018, 08:32:39
Moin HRE_7390_pi,

ich habe diese Woche auch meinen ConBee Adapter in fhem eingepflegt, allerdings mit Version .39 da es danach wohl Probleme mit den Aqara-Sensoren gab.
Habe aber das gleiche "Logproblem" wie du, auch schon einmal alles zurück gesetzt, neu eingebunden, Ports gewechselt etc. - nichts zu machen!
Da aber alles ohne Probleme funktioniert überlege ich gerade ob ich diese Logeinträge einfach entfernen/unterbinden soll.

Ich habe auch gerade einen ConBee Adapter neu gekauft und eingerichtet. Die Log-Einträge hatte ich auch, habe Sie aber mit verbose = 2 unterbinden können. Ab verbose = 3 erscheinen sie wieder. Ich denke nicht, dass es Fehlermeldungen sind.

choenig

#116
Hi justme1968,

ich habe gerade mein deCONZ mit einem RaspBee eingerichtet, um meine Philips Bewegungsmelder und Remote ohne HueBridge verwenden zu können. Ich hatte die Hoffnung, dass ich über die Websocketverbindung alle Buttonevents bekommen würde (1000 -> 1002), ich bekomme aber nur 1000, manchmal auch 1002 dazu.

Dann hab ich im Logfile gesehen, dass per Websocket alle events reinkommen, die aber im HUEDevice.pm ignoriert werden.

In 31_HUEDevice.pm, Zeile 1291 spring er raus, wenn

      return undef if( $hash->{lastupdated} && $hash->{lastupdated} eq $lastupdated);


Dies verhindert, dass die Events durchgereicht werden, da sie meistens den selben 'lastupdated'-Wert haben.

Ich hab' mir jetzt mal auf die Schnelle geholfen, in dem ich ein AttrVal hinzugefügt habe, welches ich in den relevanten Devices auf 0 gesetzt hab:

      return undef if( $hash->{lastupdated} && $hash->{lastupdated} eq $lastupdated && AttrVal( $name, 'skipImmediateEvents', 1 ));


Grundsätzlich wär' ich eher der Meinung, das 'return undef' nicht zu machen, wenn sich die 'events' unterscheiden, allerdings hat die Zeile vermutlich einen Hintergrund und es ist sicher nicht trivial, herauszufinden, ob die 'events' sich unterscheiden.

Gibt es einen besseren Weg alle events durchzulassen? Wenn das Attribut Deiner Meinung nach was brauchbares ist, kann ich auch gerne einen vollständigen Patch machen, mit Doku und so.

+++ EDIT 1 +++

Nachdem ich es jetzt mal eine Zeit so laufen hatte, hab' ich festgestellt, dass jetzt auch regelmässige Updates, die kein event sind, zum Schalten führen, das war nicht meine Absicht :(.

Hab' es darum jetzt mal bei mir umgebaut, so dass er den state noch mit überprüft, so geht es jetzt erstmal besser, aber es ist halt *nur* der state, die anderen Readings werden nicht überprüft.

@@ -1286,9 +1286,21 @@ HUEDevice_Parse($$)
         $lastupdated_local = $lastupdated;
       }

+      $readings{state} = $state->{status} if( defined($state->{status}) );
+      $readings{state} = $state->{flag}?'1':'0' if( defined($state->{flag}) );
+      $readings{state} = $state->{open}?'open':'closed' if( defined($state->{open}) );
+      $readings{state} = $state->{lightlevel} if( defined($state->{lightlevel}) && !defined($state->{lux}) );
+      $readings{state} = $state->{buttonevent} if( defined($state->{buttonevent}) );
+      $readings{state} = $state->{presence}?'motion':'nomotion' if( defined($state->{presence}) );
+      $readings{state} = $state->{fire}?'fire':'nofire' if( defined($state->{fire}) );
+
       $hash->{lastupdated} = ReadingsVal( $name, '.lastupdated', undef ) if( !$hash->{lastupdated} );
       $hash->{lastupdated_local} = ReadingsVal( $name, '.lastupdated_local', undef ) if( !$hash->{lastupdated_local} );
-      return undef if( $hash->{lastupdated} && $hash->{lastupdated} eq $lastupdated );
+      if( $hash->{lastupdated} && $hash->{lastupdated} eq $lastupdated ) {
+         return undef if ( AttrVal( $name, 'skipImmediateEvents', 1 ) );
+         my $curState = ReadingsVal( $name, "state", undef );
+         return undef unless ( defined($curState) && defined($readings{state}) && $curState ne $readings{state} )
+      }

       Log3 $name, 4, "$name: lastupdated: $lastupdated, hash->{lastupdated}:  $hash->{lastupdated}, lastupdated_local: $lastupdated_local, offsetUTC: $offset";
       Log3 $name, 5, "$name: ". Dumper $result if($HUEDevice_hasDataDumper);
@@ -1296,14 +1308,6 @@ HUEDevice_Parse($$)
       $hash->{lastupdated} = $lastupdated;
       $hash->{lastupdated_local} = $lastupdated_local;

-      $readings{state} = $state->{status} if( defined($state->{status}) );
-      $readings{state} = $state->{flag}?'1':'0' if( defined($state->{flag}) );
-      $readings{state} = $state->{open}?'open':'closed' if( defined($state->{open}) );
-      $readings{state} = $state->{lightlevel} if( defined($state->{lightlevel}) && !defined($state->{lux}) );
-      $readings{state} = $state->{buttonevent} if( defined($state->{buttonevent}) );
-      $readings{state} = $state->{presence}?'motion':'nomotion' if( defined($state->{presence}) );
-      $readings{state} = $state->{fire}?'fire':'nofire' if( defined($state->{fire}) );
-
       $readings{dark} = $state->{dark}?'1':'0' if( defined($state->{dark}) );
       $readings{humidity} = $state->{humidity} * 0.01 if( defined($state->{humidity}) );
       $readings{daylight} = $state->{daylight}?'1':'0' if( defined($state->{daylight}) );


+++ EDIT 2 +++

justme1968 hat einen 'fix' dafür eingecheckt. Es funktioniert jetzt einwandfrei :)

LG
Christian

t1me2die

Zitat von: HRE_7390_pi am 14 November 2018, 21:45:30
...
Jetzt mein Hauptanliegen:
3) folgende Einträge hab ich alle 6 Minuten im Log.
Da meine Hue Lampen noch nicht da sind und momentan also nur das Gateway läuft,
die frage ob es nur ein Status ist oder irgendwo ein Fehler in meiner Config:

2018.11.14 20:08:46 3: deCONZ: websocket opened to 192.168.2.23:443
2018.11.14 20:08:46 3: deCONZ: websocket: Switching Protocols ok
2018.11.14 20:14:46 3: deCONZ: websocket opened to 192.168.2.23:443
2018.11.14 20:14:46 3: deCONZ: websocket: Switching Protocols ok
2018.11.14 20:20:46 3: deCONZ: websocket opened to 192.168.2.23:443
2018.11.14 20:20:46 3: deCONZ: websocket: Switching Protocols ok
2018.11.14 20:26:46 3: deCONZ: websocket opened to 192.168.2.23:443
2018.11.14 20:26:46 3: deCONZ: websocket: Switching Protocols ok
2018.11.14 20:32:46 3: deCONZ: websocket opened to 192.168.2.23:443
2018.11.14 20:32:46 3: deCONZ: websocket: Switching Protocols ok
2018.11.14 20:38:46 3: deCONZ: websocket opened to 192.168.2.23:443
2018.11.14 20:38:46 3: deCONZ: websocket: Switching Protocols ok


Habe das selbe Problem, konntest du schon herausfinden, weshalb die Meldung auftaucht?

Gruß
Mathze

BeetleX

#118
Hallo,
auch ich komme mit dem Push nicht klar, habe folgende Installation:

Raspi ConBeeII und fertigem SD-card-image: https://phoscon.de/en/conbee2/sdcard, dort "Raspbian Buster Headless", 2.05.69
Mittels Phoscon eine Tradfri und AQARA double wall switch eingebunden (und 2-3 andere)
In FHEM deCONZ und Sensor AQARA1 angelegt

Ich bekomme aber kein Push vom Schalter  :(


   DEF        phoscon
   FD         42
   FUUID      5daaf21b-f33f-e163-ef96-14645526ade95371
   FVERSION   30_HUEBridge.pm:0.198540/2019-07-19
   INTERVAL   60
   NAME       deCONZ
   NOTIFYDEV  global
   NR         926
   NTFY_ORDER 50-deCONZ
   PORT       52772
   STATE      connected
   TYPE       HUEBridge
   apiversion 1.16.0
   buf       
   host       phoscon
   mac        b8:27:eb:21:08:e9
   manufacturer Royal Philips Electronics
   modelName  Philips hue bridge 2015
   modelid    deCONZ
   name       ConBeeII
   swversion  2.5.69
   updatestate 0
   websocket  1
   websocketport 443
   zigbeechannel 15
   READINGS:
     2019-10-24 22:29:37   lastError       resource, /lights/SAQARA_TH1, not available
     2019-10-24 22:24:31   state           connected
   helper:
     apiversion 69632
     count      3
     last_config_timestamp 1571948671
     offsetUTC  7200
     updatestate 0
     groups:
       1:
         etag       8c655b3aee64bb903b35dc70e1925326
         id         1
         name       Group 1
         type       LightGroup
         action:
           bri        127
           colormode  hs
           ct         0
           effect     none
           hue        0
           sat        127
           scene     
           xy:
             0
             0
         devicemembership:
         lights:
           1
         scenes:
         state:
       13617:
         etag       5fcc109754557421085c7a1b482ca9e1
         id         13617
         name       TRADFRI remote control 3
         type       LightGroup
         action:
           bri        127
           colormode  hs
           ct         0
           effect     none
           hue        0
           sat        127
           scene     
           xy:
             0
             0
         devicemembership:
           3
         lights:
         scenes:
         state:
       31106:
         etag       c13120cb8295419d05e6bff7da3f13fb
         id         31106
         name       TRADFRI remote control 4
         type       LightGroup
         action:
           bri        127
           colormode  hs
           ct         0
           effect     none
           hue        0
           sat        127
           scene     
           xy:
             0
             0
         devicemembership:
           4
         lights:
         scenes:
         state:
       62567:
         etag       8c655b3aee64bb903b35dc70e1925326
         id         62567
         name       Group 62567
         type       LightGroup
         action:
           bri        127
           colormode  hs
           ct         0
           effect     none
           hue        0
           sat        127
           scene     
           xy:
             0
             0
         devicemembership:
         lights:
           1
         scenes:
         state:
       63113:
         etag       ecc3f9d1989a118995f879ae7a0ba15c
         id         63113
         name       Group_Leo
         type       LightGroup
         action:
           bri        127
           colormode  ct
           ct         0
           effect     none
           hue        0
           sat        127
           scene     
           xy:
             0
             0
         devicemembership:
         lights:
           2
         scenes:
         state:
     lights:
       1:
         ctmax      454
         ctmin      250
         etag       0f785e73d44ddef0b027c60a24efac4a
         manufacturername IKEA of Sweden
         modelid    TRADFRI bulb E27 WS opal 980lm
         name       IKEA1
         swversion  1.2.217
         type       Color temperature light
         uniqueid   00:0b:57:ff:fe:da:e5:20-01
         state:
           alert      none
           bri        254
           colormode  ct
           ct         454
       2:
         ctmax      454
         ctmin      250
         etag       ecc3f9d1989a118995f879ae7a0ba15c
         manufacturername IKEA of Sweden
         modelid    FLOALT panel WS 60x60
         name       IKEA_LEO
         swversion  1.2.217
         type       Color temperature light
         uniqueid   90:fd:9f:ff:fe:04:d2:d2-01
         state:
           alert      none
           bri        72
           colormode  ct
           ct         454
     scenes:
Attributes:
   httpUtils  1
   key        7ECE674A24
   room       TECH->HUE
   verbose    5


   DEF        sensor AQARA1 60 IODev=deCONZ
   FUUID      5daaf351-f33f-e163-dc90-8b85c1986a31eb63
   FVERSION   31_HUEDevice.pm:0.203190/2019-10-06
   ID         SAQARA1
   INTERVAL   60
   IODev      deCONZ
   NAME       AQARA1
   NR         932
   STATE      Initialized
   TYPE       HUEDevice
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     configList:
     setList:
Attributes:
   IODev      deCONZ
   color-icons 2
   eventMap   1001:LeftLongPress
1002:LeftShortPress
1004:LeftDoublePress
2001:RightLongPress
2002:RightShortPress
2004:RightDoublePress
3001:DoubleLongPress
3002:DoubleShortPress
3004:DoubleDoublePress
   icon       taster
   room       TECH->HUE
   verbose    1


im Log steht hin und wieder
resource, /lights/SAQARA1, not available
2019.10.24 19:44:36 2: deCONZ: message for unknown type received: lights/SAQARA1


Wie bekomme ich denn die Button-Events als Push?

VG Holger

BeetleX

noch mal komprimiert:
Hat die Standard-deCONZ-Installation mit FHEM HUEBridge schon die Push-Funktionalität,
oder muss man die noch mit Woodoo-Kniffen aktivieren?

VG Holger