homebridge/homekit

Begonnen von justme1968, 01 Februar 2016, 16:16:37

Vorheriges Thema - Nächstes Thema

fred85

Zitat von: amenomade am 27 Juni 2020, 00:30:38
Ja, Du nutzt keine Code-Tags (das # Zeichen im Editormenü) und lieferst kein sauberes "list" des Devices, so dass niemand Lust hat, dein Post zu entziffern.

Auf der Schnelle und mit Kopfschmerzen ;), dein homeBridgeMapping mappt Readings die gar nicht vorhanden sind

EDIT: und doch falsch entziffert. temperature ist ja da.  Wie wird das Device erkannt (log beim Start des Bridges)?

Danke Developer für den Hinweis! Ich versuche es mal etwas übersichtlich zu gestallten.

Bin auch etwas weiter gekommen. Die Steuerung von Homekit Richtung KNX funktioniert jetzt:)

DEF   2/3/3:dpt9:desired-temp 2/0/0:dpt9:istwert

Internals:   
DEVNAME   EG_Kueche_Heizung
FIRSTGADNAME   desired-temp
FUUID   5f06b8e1-f33f-4c2e-7335-b69ddfb95491df43
GETSTRING   istwert:noArg desired-temp:noArg
IODev   KNX
KNX_MSGCNT   10
KNX_RAWMSG   C0110cw020000c56
KNX_TIME   2020-07-09 12:29:39
LASTInputDev   KNX
MSGCNT   10
NAME   EG_Kueche_Heizung
NR   125
NTFY_ORDER   50-EG_Kueche_Heizung
SETSTRING   istwert:slider,-670760,13415,670760 desired-temp:slider,-670760,13415,670760
STATE   Ist <b>22.20 °C</b> Soll: 21.00 °C
TYPE   KNX

Readings:
desired-temp   21.00
desired-temp-get   21.00
desired-temp-set   21.00
heatingState   AUTO
istwert-get   22.20
last-sender   1/1/12
state   22.20
temperature   22.20

Attributes:
IODev   KNX
event-on-update-reading   .*
genericDeviceType   thermostat
group   2/ Heizung
homebridgeMapping   CurrentTemperature=temperature
TargetTemperature=desired-temp::desired-temp,minValue=17.5,maxValue=24.5,minStep=0.5,nocache=1
icon   temp_temperature
room   KNX,homebridge
stateFormat   Ist <b>temperature °C</b> Soll: desired-temp-get °C
userReadings   desired-temp { ReadingsVal($NAME,"desired-temp-get",0);; },
temperature { ReadingsVal($NAME,"istwert-get",0);; },
desired-temp-set { ReadingsVal($NAME,"desired-temp",0);; },
heatingState {(ReadingsVal($NAME,"ValvePosition",0) > 0 || ReadingsVal($NAME,"desired-temp","-") eq "on") ? "HEAT" : ReadingsVal($NAME,"desired-temp","-") eq "off" ? "OFF" : ReadingsVal($NAME,"controlMode","auto") eq "auto" ? "AUTO" : (ReadingsVal($NAME,"measured-temp",20) > ReadingsVal($NAME,"desired-temp",20)) ? "COOL" : "AUTO"}



wenn ich in Homkit die Temperatur auf 20.00 stelle passiert folgendes in
Events (Filter: .*)
KNX EG_Kueche_Heizung desired-temp-set: 20.00
KNX EG_Kueche_Heizung 20.00
KNX EG_Kueche_Heizung last-sender: fhem
KNX EG_Kueche_Heizung desired-temp: 21.00
KNX EG_Kueche_Heizung temperature: 22.30
KNX EG_Kueche_Heizung desired-temp-set: 21.00
KNX EG_Kueche_Heizung heatingState: AUTO
KNX EG_Kueche_Heizung desired-temp-get: 20.00
KNX EG_Kueche_Heizung last-sender: 1/1/6
KNX EG_Kueche_Heizung 20.00
KNX EG_Kueche_Heizung desired-temp: 20.00
KNX EG_Kueche_Heizung temperature: 22.30
KNX EG_Kueche_Heizung desired-temp-set: 20.00
KNX EG_Kueche_Heizung heatingState: AUTO

Homkit Richttung KNX Funktioniert.

Wenn ich auf dem KNX Gerät 20.00 einstellen passiert folgendes:

KNX EG_Kueche_Heizung desired-temp-get: 20.00
KNX EG_Kueche_Heizung last-sender: 1/1/12
KNX EG_Kueche_Heizung 20.00
KNX EG_Kueche_Heizung desired-temp: 20.00
KNX EG_Kueche_Heizung temperature: 22.80
KNX EG_Kueche_Heizung desired-temp-set: 20.00
KNX EG_Kueche_Heizung heatingState: AUTO
KNX EG_Kueche_Heizung desired-temp-get: 20.00
KNX EG_Kueche_Heizung last-sender: 1/1/6
KNX EG_Kueche_Heizung 20.00
KNX EG_Kueche_Heizung desired-temp: 20.00
KNX EG_Kueche_Heizung temperature: 22.80
KNX EG_Kueche_Heizung desired-temp-set: 20.00
KNX EG_Kueche_Heizung heatingState: AUTO

Ich änder zwar die Temperatur in KNX, leider wird dies nicht auf dem Homekit Device angezeigt.


Hat jemand eine Idee wo mein Fehler liegt?

EinEinfach

Hier ein Beispiel von meinem KNX Device, versuche dich daran zu orientieren:


Internals:
   DEF        2/1/4:dpt5.001:ventilpostion:get
2/2/4:dpt9.001:ist_temperatur:get
2/4/4:dpt9.001:soll_temperatur
2/3/4:dpt9.001:soll_temperatur_status:get
2/5/4:dpt20.102:soll_betriebsart
2/6/4:dpt20.102:ist_betriebssart:get
2/7/4:dpt16.000:diagnose:get
2/0/4:dpt1.003:zwangsstellung
   DEVNAME    BZ.Heizung
   FIRSTGADNAME ventilpostion
   FUUID      5d8e0112-f33f-80cb-7cc8-499bfa1b8a95e304
   GETSTRING  ist_temperatur:noArg soll_temperatur:noArg soll_temperatur_status:noArg soll_betriebsart:noArg zwangsstellung:noArg ventilpostion:noArg ist_betriebssart:noArg diagnose:noArg
   IODev      KNX
   KNX_MSGCNT 328
   KNX_RAWMSG C0110ew0210400
   KNX_TIME   2020-07-09 13:24:32
   LASTInputDev KNX
   MSGCNT     328
   NAME       BZ.Heizung
   NR         94
   NTFY_ORDER 50-BZ.Heizung
   SETSTRING  soll_temperatur:slider,-670760,13415,670760 soll_betriebsart:Auto,Comfort,Standby,Economy,Protection zwangsstellung:disable,enable
   STATE      Ist: 22.10 &deg;C  Soll: 20.00 &deg;C Ventilposition: 0 %
   TYPE       KNX
   GADDETAILS:
     diagnose:
       CODE       02704
       GROUP      2/7/4
       MODEL      dpt16.000
       NO         7
       OPTION     get
       RDNAMEGET  diagnose-get
       RDNAMEPUT  diagnose-put
       RDNAMESET 
       SETLIST   
     ist_betriebssart:
       CODE       02604
       GROUP      2/6/4
       MODEL      dpt20.102
       NO         6
       OPTION     get
       RDNAMEGET  ist_betriebssart-get
       RDNAMEPUT  ist_betriebssart-put
       RDNAMESET 
       SETLIST    :Auto,Comfort,Standby,Economy,Protection
     ist_temperatur:
       CODE       02204
       GROUP      2/2/4
       MODEL      dpt9.001
       NO         2
       OPTION     get
       RDNAMEGET  ist_temperatur-get
       RDNAMEPUT  ist_temperatur-put
       RDNAMESET 
       SETLIST    :slider,-670760,13415,670760
     soll_betriebsart:
       CODE       02504
       GROUP      2/5/4
       MODEL      dpt20.102
       NO         5
       OPTION     
       RDNAMEGET  soll_betriebsart-get
       RDNAMEPUT  soll_betriebsart-put
       RDNAMESET  soll_betriebsart-set
       SETLIST    :Auto,Comfort,Standby,Economy,Protection
     soll_temperatur:
       CODE       02404
       GROUP      2/4/4
       MODEL      dpt9.001
       NO         3
       OPTION     
       RDNAMEGET  soll_temperatur-get
       RDNAMEPUT  soll_temperatur-put
       RDNAMESET  soll_temperatur-set
       SETLIST    :slider,-670760,13415,670760
     soll_temperatur_status:
       CODE       02304
       GROUP      2/3/4
       MODEL      dpt9.001
       NO         4
       OPTION     get
       RDNAMEGET  soll_temperatur_status-get
       RDNAMEPUT  soll_temperatur_status-put
       RDNAMESET 
       SETLIST    :slider,-670760,13415,670760
     ventilpostion:
       CODE       02104
       GROUP      2/1/4
       MODEL      dpt5.001
       NO         1
       OPTION     get
       RDNAMEGET  ventilpostion-get
       RDNAMEPUT  ventilpostion-put
       RDNAMESET 
       SETLIST    :slider,0,1,100
     zwangsstellung:
       CODE       02004
       GROUP      2/0/4
       MODEL      dpt1.003
       NO         8
       OPTION     
       RDNAMEGET  zwangsstellung-get
       RDNAMEPUT  zwangsstellung-put
       RDNAMESET  zwangsstellung-set
       SETLIST    :disable,enable
   GADTABLE:
     02004      zwangsstellung
     02104      ventilpostion
     02204      ist_temperatur
     02304      soll_temperatur_status
     02404      soll_temperatur
     02504      soll_betriebsart
     02604      ist_betriebssart
     02704      diagnose
   Helper:
     DBLOG:
       ist_betriebssart-get:
         SYS.DBLog:
           TIME       1594291664.65899
           VALUE      Standby
       ist_temperatur-get:
         SYS.DBLog:
           TIME       1594293256.79397
           VALUE      22.10
       last-sender:
         SYS.DBLog:
           TIME       1594293872.3699
           VALUE      1/1/14
       soll_temperatur:
         SYS.DBLog:
           TIME       1594293736.75793
           VALUE      20.00
       soll_temperatur-get:
         SYS.DBLog:
           TIME       1594290772.77955
           VALUE      22.00
       soll_temperatur_status-get:
         SYS.DBLog:
           TIME       1594290772.72992
           VALUE      20.00
       soll_ventilposition:
         SYS.DBLog:
           TIME       1594293256.79397
           VALUE      40
       state:
         SYS.DBLog:
           TIME       1594293872.3699
           VALUE      0
       ventilpostion-get:
         SYS.DBLog:
           TIME       1594290592.74442
           VALUE      0
   READINGS:
     2020-07-09 09:18:59   diagnose-get    Wi H Standby 0
     2020-07-09 13:17:32   ist_betriebssart-get Standby
     2020-07-09 09:18:59   ist_betriebssart_alt Standby
     2020-07-09 13:24:16   ist_temperatur-get 22.10 &deg;C
     2020-07-09 13:24:32   last-sender     1/1/14
     2020-07-09 09:18:59   soll_betriebsart-set Standby
     2020-07-09 13:24:32   soll_temperatur 20.00 &deg;C
     2020-07-09 13:22:32   soll_temperatur-get 22.00 &deg;C
     2020-07-09 09:18:59   soll_temperatur-set 22.00 &deg;C
     2020-07-09 13:22:32   soll_temperatur_status-get 20.00 &deg;C
     2020-07-09 13:24:32   soll_ventilposition 40
     2020-07-09 13:24:32   state           0 %
     2020-07-09 13:24:32   ventilpostion-get 0 %
     2020-07-09 09:18:59   zwangsstellung-set enable
Attributes:
   IODev      KNX
   alexaName  Heizung Badezimmer
   alexaRoom  Badezimmer
   alias      Heizung Badezimmer
   event-min-interval .*:3600
   event-on-change-reading .*
   genericDeviceType thermostat
   group      Heizung
   homebridgeMapping CurrentTemperature=ist_temperatur-get
TargetTemperature=soll_temperatur::soll_temperatur,minValue=16,maxValue=26,minStep=0.5,nocache=1
CurrentHeatingCoolingState=ist_betriebsart-get,values=Protection/Frost/Heat:0;;Standby:0;;Comfort:1;;Economy/Night:1;;cool:2,valud=off
TargetHeatingCoolingState=soll_betriebsart-set,values=Protection/Frost/Heat:0;;Standby:0;;Comfort:1;;Economy/Night:1;;cool:2;;Auto:3,cmds=OFF:soll_betriebsart+Protection;;HEAT:soll_betriebsart+Comfort;;AUTO:soll_betriebsart+Auto;;COOL:soll_betriebsart+Standby
   mqttName   Heizung
   mqttRoom   Badezimmer
   room       15_Badezimmer,80_Homekit,KNX
   stateFormat {'Ist: '.ReadingsVal($name, "ist_temperatur-get","").
'  Soll: '.ReadingsVal($name, "soll_temperatur_status-get", "").
' Ventilposition: '.ReadingsVal($name, "ventilpostion-get", "")}
   userReadings soll_temperatur
{
ReadingsVal($NAME,"soll_temperatur_status-get","")
},

soll_ventilposition
{
soll_ventilposition(ReadingsNum("$NAME","soll_temperatur-get",""),ReadingsNum("$NAME","ist_temperatur-get",""))
}

   webCmd     soll_temperatur
   widgetOverride soll_temperatur:16,16.5,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22,22.5,23,23.5,24,24.5,25,25.5,26



Ansonsten solltest du die Homebridge im Debug-Modus starten und dir anschauen welche Werte von der Homebridge gesendet/empfangen werden
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

fred85

Zitat von: EinEinfach am 09 Juli 2020, 13:32:37
Hier ein Beispiel von meinem KNX Device, versuche dich daran zu orientieren:


Internals:
   DEF        2/1/4:dpt5.001:ventilpostion:get
2/2/4:dpt9.001:ist_temperatur:get
2/4/4:dpt9.001:soll_temperatur
2/3/4:dpt9.001:soll_temperatur_status:get
2/5/4:dpt20.102:soll_betriebsart
2/6/4:dpt20.102:ist_betriebssart:get
2/7/4:dpt16.000:diagnose:get
2/0/4:dpt1.003:zwangsstellung
   DEVNAME    BZ.Heizung
   FIRSTGADNAME ventilpostion
   FUUID      5d8e0112-f33f-80cb-7cc8-499bfa1b8a95e304
   GETSTRING  ist_temperatur:noArg soll_temperatur:noArg soll_temperatur_status:noArg soll_betriebsart:noArg zwangsstellung:noArg ventilpostion:noArg ist_betriebssart:noArg diagnose:noArg
   IODev      KNX
   KNX_MSGCNT 328
   KNX_RAWMSG C0110ew0210400
   KNX_TIME   2020-07-09 13:24:32
   LASTInputDev KNX
   MSGCNT     328
   NAME       BZ.Heizung
   NR         94
   NTFY_ORDER 50-BZ.Heizung
   SETSTRING  soll_temperatur:slider,-670760,13415,670760 soll_betriebsart:Auto,Comfort,Standby,Economy,Protection zwangsstellung:disable,enable
   STATE      Ist: 22.10 &deg;C  Soll: 20.00 &deg;C Ventilposition: 0 %
   TYPE       KNX
   GADDETAILS:
     diagnose:
       CODE       02704
       GROUP      2/7/4
       MODEL      dpt16.000
       NO         7
       OPTION     get
       RDNAMEGET  diagnose-get
       RDNAMEPUT  diagnose-put
       RDNAMESET 
       SETLIST   
     ist_betriebssart:
       CODE       02604
       GROUP      2/6/4
       MODEL      dpt20.102
       NO         6
       OPTION     get
       RDNAMEGET  ist_betriebssart-get
       RDNAMEPUT  ist_betriebssart-put
       RDNAMESET 
       SETLIST    :Auto,Comfort,Standby,Economy,Protection
     ist_temperatur:
       CODE       02204
       GROUP      2/2/4
       MODEL      dpt9.001
       NO         2
       OPTION     get
       RDNAMEGET  ist_temperatur-get
       RDNAMEPUT  ist_temperatur-put
       RDNAMESET 
       SETLIST    :slider,-670760,13415,670760
     soll_betriebsart:
       CODE       02504
       GROUP      2/5/4
       MODEL      dpt20.102
       NO         5
       OPTION     
       RDNAMEGET  soll_betriebsart-get
       RDNAMEPUT  soll_betriebsart-put
       RDNAMESET  soll_betriebsart-set
       SETLIST    :Auto,Comfort,Standby,Economy,Protection
     soll_temperatur:
       CODE       02404
       GROUP      2/4/4
       MODEL      dpt9.001
       NO         3
       OPTION     
       RDNAMEGET  soll_temperatur-get
       RDNAMEPUT  soll_temperatur-put
       RDNAMESET  soll_temperatur-set
       SETLIST    :slider,-670760,13415,670760
     soll_temperatur_status:
       CODE       02304
       GROUP      2/3/4
       MODEL      dpt9.001
       NO         4
       OPTION     get
       RDNAMEGET  soll_temperatur_status-get
       RDNAMEPUT  soll_temperatur_status-put
       RDNAMESET 
       SETLIST    :slider,-670760,13415,670760
     ventilpostion:
       CODE       02104
       GROUP      2/1/4
       MODEL      dpt5.001
       NO         1
       OPTION     get
       RDNAMEGET  ventilpostion-get
       RDNAMEPUT  ventilpostion-put
       RDNAMESET 
       SETLIST    :slider,0,1,100
     zwangsstellung:
       CODE       02004
       GROUP      2/0/4
       MODEL      dpt1.003
       NO         8
       OPTION     
       RDNAMEGET  zwangsstellung-get
       RDNAMEPUT  zwangsstellung-put
       RDNAMESET  zwangsstellung-set
       SETLIST    :disable,enable
   GADTABLE:
     02004      zwangsstellung
     02104      ventilpostion
     02204      ist_temperatur
     02304      soll_temperatur_status
     02404      soll_temperatur
     02504      soll_betriebsart
     02604      ist_betriebssart
     02704      diagnose
   Helper:
     DBLOG:
       ist_betriebssart-get:
         SYS.DBLog:
           TIME       1594291664.65899
           VALUE      Standby
       ist_temperatur-get:
         SYS.DBLog:
           TIME       1594293256.79397
           VALUE      22.10
       last-sender:
         SYS.DBLog:
           TIME       1594293872.3699
           VALUE      1/1/14
       soll_temperatur:
         SYS.DBLog:
           TIME       1594293736.75793
           VALUE      20.00
       soll_temperatur-get:
         SYS.DBLog:
           TIME       1594290772.77955
           VALUE      22.00
       soll_temperatur_status-get:
         SYS.DBLog:
           TIME       1594290772.72992
           VALUE      20.00
       soll_ventilposition:
         SYS.DBLog:
           TIME       1594293256.79397
           VALUE      40
       state:
         SYS.DBLog:
           TIME       1594293872.3699
           VALUE      0
       ventilpostion-get:
         SYS.DBLog:
           TIME       1594290592.74442
           VALUE      0
   READINGS:
     2020-07-09 09:18:59   diagnose-get    Wi H Standby 0
     2020-07-09 13:17:32   ist_betriebssart-get Standby
     2020-07-09 09:18:59   ist_betriebssart_alt Standby
     2020-07-09 13:24:16   ist_temperatur-get 22.10 &deg;C
     2020-07-09 13:24:32   last-sender     1/1/14
     2020-07-09 09:18:59   soll_betriebsart-set Standby
     2020-07-09 13:24:32   soll_temperatur 20.00 &deg;C
     2020-07-09 13:22:32   soll_temperatur-get 22.00 &deg;C
     2020-07-09 09:18:59   soll_temperatur-set 22.00 &deg;C
     2020-07-09 13:22:32   soll_temperatur_status-get 20.00 &deg;C
     2020-07-09 13:24:32   soll_ventilposition 40
     2020-07-09 13:24:32   state           0 %
     2020-07-09 13:24:32   ventilpostion-get 0 %
     2020-07-09 09:18:59   zwangsstellung-set enable
Attributes:
   IODev      KNX
   alexaName  Heizung Badezimmer
   alexaRoom  Badezimmer
   alias      Heizung Badezimmer
   event-min-interval .*:3600
   event-on-change-reading .*
   genericDeviceType thermostat
   group      Heizung
   homebridgeMapping CurrentTemperature=ist_temperatur-get
TargetTemperature=soll_temperatur::soll_temperatur,minValue=16,maxValue=26,minStep=0.5,nocache=1
CurrentHeatingCoolingState=ist_betriebsart-get,values=Protection/Frost/Heat:0;;Standby:0;;Comfort:1;;Economy/Night:1;;cool:2,valud=off
TargetHeatingCoolingState=soll_betriebsart-set,values=Protection/Frost/Heat:0;;Standby:0;;Comfort:1;;Economy/Night:1;;cool:2;;Auto:3,cmds=OFF:soll_betriebsart+Protection;;HEAT:soll_betriebsart+Comfort;;AUTO:soll_betriebsart+Auto;;COOL:soll_betriebsart+Standby
   mqttName   Heizung
   mqttRoom   Badezimmer
   room       15_Badezimmer,80_Homekit,KNX
   stateFormat {'Ist: '.ReadingsVal($name, "ist_temperatur-get","").
'  Soll: '.ReadingsVal($name, "soll_temperatur_status-get", "").
' Ventilposition: '.ReadingsVal($name, "ventilpostion-get", "")}
   userReadings soll_temperatur
{
ReadingsVal($NAME,"soll_temperatur_status-get","")
},

soll_ventilposition
{
soll_ventilposition(ReadingsNum("$NAME","soll_temperatur-get",""),ReadingsNum("$NAME","ist_temperatur-get",""))
}

   webCmd     soll_temperatur
   widgetOverride soll_temperatur:16,16.5,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22,22.5,23,23.5,24,24.5,25,25.5,26



Ansonsten solltest du die Homebridge im Debug-Modus starten und dir anschauen welche Werte von der Homebridge gesendet/empfangen werden


Respekt, dass mit den Betriebsarten würde ich auch gerne nachbaue aber dpt20.102 ist mir echt zu Hoch ;D
ich habe die Lösung aber durch dein Device gefunden, soll_temperatur und soll_temperatur_status:get auf eine Gruppenadresse legen wir in der MDT Doku.

Es läuft! Danke!

Hast du per Zufall auch ein Device für Rollos? Meine Lösung hat oft Aussetzer bei der Darstellung im Homekit.

EinEinfach

Ja klar, habe ich auch. Ich hatte auch anfangs Probleme mit den Rollladen und Homekit, was es aber genau war kriege ich nicht mehr zusammen. Deswegen musste ich mir noch ein DOIF bauen, poste ich auch gleich mit.
Internals:
   DEF        3/1/4:dpt1.008:rollladen_auf_ab 3/2/4:dpt1.017:rollladen_stop 3/3/4:dpt5.001:soll_position 3/5/4:dpt5.001:ist_position:listenonly 3/6/4:dpt1.011:verfahrstatus:listenonly
   DEVNAME    BZ.Rollladen
   FIRSTGADNAME rollladen_auf_ab
   FUUID      5ca7b441-f33f-80cb-c317-0cd4d0aefbf51ef4
   GETSTRING  rollladen_stop:noArg soll_position:noArg rollladen_auf_ab:noArg ist_position:noArg verfahrstatus:noArg
   IODev      KNX
   KNX_MSGCNT 7
   KNX_RAWMSG C0110cw0350400
   KNX_TIME   2020-07-10 05:00:30
   LASTInputDev KNX
   MSGCNT     7
   NAME       BZ.Rollladen
   NR         28
   NTFY_ORDER 50-BZ.Rollladen
   SETSTRING  rollladen_stop:trigger,trigger soll_position:slider,0,1,100 rollladen_auf_ab:up,down
   STATE      0 %
   TYPE       KNX
   GADDETAILS:
     ist_position:
       CODE       03504
       GROUP      3/5/4
       MODEL      dpt5.001
       NO         4
       OPTION     listenonly
       RDNAMEGET  ist_position-get
       RDNAMEPUT  ist_position-put
       RDNAMESET 
       SETLIST    :slider,0,1,100
     rollladen_auf_ab:
       CODE       03104
       GROUP      3/1/4
       MODEL      dpt1.008
       NO         1
       OPTION     
       RDNAMEGET  rollladen_auf_ab-get
       RDNAMEPUT  rollladen_auf_ab-put
       RDNAMESET  rollladen_auf_ab-set
       SETLIST    :up,down
     rollladen_stop:
       CODE       03204
       GROUP      3/2/4
       MODEL      dpt1.017
       NO         2
       OPTION     
       RDNAMEGET  rollladen_stop-get
       RDNAMEPUT  rollladen_stop-put
       RDNAMESET  rollladen_stop-set
       SETLIST    :trigger,trigger
     soll_position:
       CODE       03304
       GROUP      3/3/4
       MODEL      dpt5.001
       NO         3
       OPTION     
       RDNAMEGET  soll_position-get
       RDNAMEPUT  soll_position-put
       RDNAMESET  soll_position-set
       SETLIST    :slider,0,1,100
     verfahrstatus:
       CODE       03604
       GROUP      3/6/4
       MODEL      dpt1.011
       NO         5
       OPTION     listenonly
       RDNAMEGET  verfahrstatus-get
       RDNAMEPUT  verfahrstatus-put
       RDNAMESET 
       SETLIST    :inactive,active
   GADTABLE:
     03104      rollladen_auf_ab
     03204      rollladen_stop
     03304      soll_position
     03504      ist_position
     03604      verfahrstatus
   Helper:
     DBLOG:
       ist_position-get:
         SYS.DBLog:
           TIME       1594350030.69797
           VALUE      0
       last-sender:
         SYS.DBLog:
           TIME       1594350003.85666
           VALUE      1/1/12
       soll_position:
         SYS.DBLog:
           TIME       1594350030.69797
           VALUE      0
       state:
         SYS.DBLog:
           TIME       1594350030.69797
           VALUE      0
       verfahrstatus-get:
         SYS.DBLog:
           TIME       1594350028.07599
           VALUE      inactive
   READINGS:
     2020-07-09 21:37:40   ASC_Enable      on
     2020-07-10 05:00:02   ASC_Time_DriveDown 10.07.2020 - 22:00
     2020-07-10 05:00:02   ASC_Time_DriveUp 11.07.2020 - 05:00
     2020-07-09 21:37:45   associatedWith  as.rollladen
     2020-07-10 05:00:30   ist_position-get 0 %
     2020-07-10 05:00:30   last-sender     1/1/12
     2020-07-09 21:37:40   rollladen_auf_ab-get down
     2020-07-09 21:37:40   rollladen_auf_ab-set down
     2020-07-09 21:37:40   rollladen_stop-get trigger
     2020-07-09 21:37:40   rollladen_stop-set 0
     2020-07-10 05:00:34   soll_position   0 %
     2020-07-10 05:00:34   soll_position-int 0 %
     2020-07-10 05:00:02   soll_position-set 0 %
     2020-07-10 05:00:30   state           0 %
     2020-07-10 05:00:28   verfahrstatus-get inactive
Attributes:
   ASC        1
   ASC_Pos_Reading soll_position
   ASC_WiggleValue 20
   IODev      KNX
   alarmDevice Actor
   alarmSettings alarm5,|set BZ.Rollladen soll_position 0||0:00
   alexaName  Rollladen Badezimmer
   alexaRoom  Badezimmer
   alias      Rollladen Badezimmer
   event-on-change-reading .*
   genericDeviceType blind
   group      Rollladen
   homebridgeMapping clear CurrentPosition=ist_position-get,minValue=0,maxValue=100,minStep=5,invert=1 TargetPosition=soll_position-int,minValue=0,maxValue=100,minStep=5,invert=1,cmd=soll_position,minValue=0,maxValue=100,minStep=5,delay=500
   room       15_Badezimmer,80_Homekit,KNX
   stateCmd   {ReadingsVal($name,"ist_position-get","undef")}
   userReadings soll_position {ReadingsVal($NAME,"ist_position-get","") }
   userattr   ASC_Adv:on,off ASC_Antifreeze:off,soft,hard,am,pm ASC_Antifreeze_Pos:5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100 ASC_AutoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeEveningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_AutoAstroModeMorning:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_BlockingTime_afterManual ASC_BlockingTime_beforDayOpen ASC_BlockingTime_beforNightClose ASC_BrightnessSensor ASC_Closed_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_ComfortOpen_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Down:time,astro,brightness,roommate ASC_DriveUpMaxDuration ASC_Drive_Delay ASC_Drive_DelayStart ASC_ExternalTrigger ASC_GuestRoom:on,off ASC_LockOut:soft,hard,off ASC_LockOut_Cmd:inhibit,blocked,protection ASC_Mode_Down:absent,always,off,home ASC_Mode_Up:absent,always,off,home ASC_Open_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Partymode:on,off ASC_Pos_Reading ASC_PrivacyDownValue_beforeNightClose ASC_PrivacyDown_Pos ASC_PrivacyUpValue_beforeDayOpen ASC_PrivacyUp_Pos ASC_RainProtection:on,off ASC_Roommate_Device ASC_Roommate_Reading ASC_Self_Defense_AbsentDelay ASC_Self_Defense_Mode:absent,gone,off ASC_Shading_InOutAzimuth ASC_Shading_MinMax_Elevation ASC_Shading_Min_OutsideTemperature ASC_Shading_Mode:absent,always,off,home ASC_Shading_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Shading_StateChange_SunnyCloudy ASC_Shading_WaitingPeriod ASC_Shutter_IdleDetection ASC_ShuttersPlace:window,terrace ASC_Sleep_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_TempSensor ASC_Time_Down_Early ASC_Time_Down_Late ASC_Time_Up_Early ASC_Time_Up_Late ASC_Time_Up_WE_Holiday ASC_Up:time,astro,brightness,roommate ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Ventilate_Window_Open:on,off ASC_WiggleValue ASC_WindParameters ASC_WindProtection:on,off ASC_WindowRec ASC_WindowRec_PosAfterDayClosed:open,lastManual ASC_WindowRec_subType:twostate,threestate
   webCmd     soll_position


DOIF:


Internals:
   DEF        ##Hilfsvariable zum Setzen des Sollwerts der Rollladen für die Homebridge. Kommt zum tragen wenn Rollladen über den externen Taster bedient wird

##1
([BZ.Rollladen:verfahrstatus-get] eq "active")
(setreading BZ.Rollladen soll_position-int [BZ.Rollladen:soll_position-set])

##2
DOELSE
(setreading BZ.Rollladen soll_position-int [BZ.Rollladen:ist_position-get])
   FUUID      5cb4c27a-f33f-80cb-1f36-e38c389bddb9df97
   MODEL      FHEM
   NAME       di.bz.rollladen.soll_position_int
   NOTIFYDEV  BZ.Rollladen,global
   NR         45
   NTFY_ORDER 50-di.bz.rollladen.soll_position_int
   STATE      cmd_2
   TYPE       DOIF
   VERSION    22030 2020-05-25 14:10:16
   Helper:
     DBLOG:
       cmd:
         SYS.DBLog:
           TIME       1594350034.23495
           VALUE      2
       cmd_nr:
         SYS.DBLog:
           TIME       1594350034.23495
           VALUE      2
       state:
         SYS.DBLog:
           TIME       1594350034.23495
           VALUE      cmd_2
       wait_timer:
         SYS.DBLog:
           TIME       1594350034.11098
           VALUE      no timer
   READINGS:
     2020-07-10 05:00:28   Device          BZ.Rollladen
     2020-07-10 05:00:34   cmd             2
     2020-07-10 05:00:34   cmd_event       BZ.Rollladen
     2020-07-10 05:00:34   cmd_nr          2
     2020-07-10 05:00:28   e_BZ.Rollladen_verfahrstatus-get inactive
     2019-04-15 19:43:13   mode            enabled
     2020-07-10 05:00:34   state           cmd_2
     2020-07-10 05:00:34   wait_timer      no timer
   Regex:
     accu:
     cond:
       BZ.Rollladen:
         0:
           verfahrstatus-get ^BZ.Rollladen$:^verfahrstatus-get:
   attr:
     cmdState:
     wait:
       0:
         0
       1:
         6
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'BZ.Rollladen','verfahrstatus-get') eq "active"
   do:
     0:
       0          setreading BZ.Rollladen soll_position-int [BZ.Rollladen:soll_position-set]
     1:
       0          setreading BZ.Rollladen soll_position-int [BZ.Rollladen:ist_position-get]
   helper:
     DEVFILTER  ^global$|^BZ.Rollladen$
     NOTIFYDEV  global|BZ.Rollladen
     event      verfahrstatus-get: inactive
     globalinit 1
     last_timer 0
     sleepdevice BZ.Rollladen
     sleepsubtimer -1
     sleeptimer -1
     timerdev   BZ.Rollladen
     timerevent verfahrstatus-get: inactive
     triggerDev BZ.Rollladen
     timerevents:
       verfahrstatus-get: inactive
     timereventsState:
       verfahrstatus-get: inactive
     triggerEvents:
       verfahrstatus-get: inactive
     triggerEventsState:
       verfahrstatus-get: inactive
   internals:
   perlblock:
   readings:
     all         BZ.Rollladen:verfahrstatus-get
   trigger:
   uiState:
   uiTable:
Attributes:
   event-on-change-reading .*
   group      Rollladen
   room       98_Hilfsgrößen
   wait       0:6


P.S.: DPT20.102 wird vom offiziellen KNX Modul aktuell nicht unterstützt, da müsste man selbst im Modul einige Änderungen vornehmen, was genau findest im entprechenden KNX Unterforum
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

Chris8888

Hi,

gibt es in der kommenden IOS/TvOS 14 eigentlich Änderungen für Homekit?
Ich habe gerade mal mein Apple-TV auf die Beta upgedatet, Homebdrige etc. ohne Probleme.
Aber etwas neues konnte ich nicht feststellen.

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

Elektrolurch

Ich dachte, dass man irgendwann einmal die TV-Kanäle (auch per Sprachsteuerung) umschalten könnte, aber bis jetzt habe ich außer der Ankündigung dazu noch kein mapping entdecken können....

Elektrolurch
configDB und Windows befreite Zone!

Typ1er

... die Übersicht am iPad mit den Räumen ist neu, neue Gerätekategorien scheint es erstmal nicht zu geben

Sky

Guten Abend ,

kann mir jemand sagen wo ich meine Homebridge-Logdatei finde ?
Dies läuft unter systemd .

unter /var/log steht nichts
unter /opt/fhem/log auch nicht

Danke

hoppel118

@Sky Schau mal im normalen syslog "/var/log/syslog". Dorthin loggt die Homebridge zumindest bei mir unter Debian Stretch per Default. Hatte irgendwann mal versucht, das in ein eigenes Logfile umzubiegen. Bin aber gescheitert und habe das dann nicht mehr weiter verfolgt.

EDIT: Gerade gesehen, dass ich Jubiläum feiern kann. Das ist mein 1000ster Beitrag hier im Forum. :D

Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi

Sky

Danke Hoppel ,

genau dort steht die Logdatei  .



Sky

Hallo Community ,

ich habe dieses Thema noch einmal für meine Gosund SP1 ,mit Tasmota , aufgegriffen .

Zitat von: hoppel118 am 18 November 2019, 10:45:25
Moin Sky, wie man userReadings verwendet, ist hier beschrieben: https://wiki.fhem.de/wiki/UserReadings

Dein Reading "network" scheint dafür gut geeignet zu sein.

Moin Andre,

habe das mal mit meinem Ventilator im Büro inkl. userReadings "reachable" umgesetzt:

Internals:
   DEF        10.11.11.40 c06af5c00f91c09b7a18a38da7b64ffa
   FD         61
   FUUID      5d0e94cb-f33f-5dcf-f435-ea8853cb58594e56
   NAME       OG_Buero_Ventilator
   NR         450
   STATE      straight 0%
   TYPE       XiaomiDevice
   OLDREADINGS:
   READINGS:
     2019-11-18 09:17:28   ac_power        off
     2019-11-18 09:17:28   angle           30
     2019-11-18 09:17:28   angle_enable    on
     2019-11-18 09:17:28   batteryPercent  100
     2019-11-18 09:17:28   batteryState    ok
     2019-11-17 10:08:08   button_pressed  speed
     2019-11-18 09:17:28   buzzer          off
     2019-11-18 09:17:28   charging        progress
     2019-11-18 09:17:28   child_lock      off
     2019-11-18 09:17:28   error           none
     2019-11-18 09:17:28   humidity        61
     2019-11-18 09:17:28   led             bright
     2019-11-18 09:17:28   level           0
     2019-11-18 09:17:28   level_on        1
     2019-11-18 09:17:28   mode            straight
     2019-11-18 09:17:28   power           off
     2019-11-18 09:17:28   poweroff_time   0
     2019-11-18 09:40:49   reachable       0
     2019-11-18 09:17:28   speed           0
     2019-11-18 09:40:49   state           disconnected
     2019-11-18 09:17:28   temperature     19
   helper:
     ConnectionState disconnected
     crypt      AES
     delay      780
     dev        0436
     id         e469
     ip         10.11.11.40
     last_read  1574065048
     packetid   1016
     port       54321
     sequence   1574064288
     token      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Attributes:
   alexaName  Lüfter
   alexaRoom  Büro
   alias      Büro Lüfter
   genericDeviceType Fan
   group      Ventilatoren
   homebridgeMapping clear
On:power,cmdOn=on,cmdOff=off,valueOn=on,valueOff=off
LockPhysicalControls=child_lock,values=on:CONTROL_LOCK_ENABLED;;off:CONTROL_LOCK_DISABLED,cmds=CONTROL_LOCK_ENABLED:child_lock+on;CONTROL_LOCK_DISABLED:child_lock+off
RotationSpeed=level,minValue=0,maxValue=100,cmd=level,delay=1
TargetTiltAngle=angle,minValue=30,maxValue=120,minStep=30,cmd=angle
SwingMode=angle_enable,values=on:SWING_ENABLED;;off:SWING_DISABLED,cmdOn=angle_enable+on,cmdOff=angle_enable+off
CurrentRelativeHumidity=humidity
CurrentTemperature=temperature
BatteryLevel=batteryPercent,maxValue=100,minValue=0,minStep=1
StatusLowBattery=batteryState,values=ok:BATTERY_LEVEL_NORMAL;;low:BATTERY_LEVEL_LOW
ChargingState=charging,values=complete:NOT_CHARGING;;progress:CHARGING;;/.*/:NOT_CHARGEABLE
Mute:mode,cmdOn=mode+straight,cmdOff=mode+natural,valueOn=straight,valueOff=natural
AudioFeedback:buzzer,cmdOn=buzzer+on,cmdOff=buzzer+off,valueOn=on,valueOff=off
NightVision:led,cmdOn=led+off,cmdOff=led+bright,valueOn=off,valueOff=bright
CurrentFanState:power,values=on:BLOWING_AIR;;off:INACTIVE;;/.*/:IDLE
2bea633d-3a98-49a9-8b2b-8030196cdc34=speed,name=Motor,format=FLOAT,minStep=1,unit=U/min
history:size=1024
   icon       Ventilator_fett
   room       Hersteller->Xiaomi,Homebridge->Xiaomi,Obergeschoss->Büro,System->Ventilatoren
   siriName   Lüfter
   stateFormat mode level%
   subType    SmartFan
   userReadings reachable {if(ReadingsVal("OG_Buero_Ventilator","state","") eq "connected") {return 1} else {return 0}}
   verbose    2


Ist "state connected" dann "reachable 1", sonst "reachable 0". Das userReadings funktioniert so weit. Anschließend habe ich die entsprechende Homebridge Instanz einmal neugestartet. In EVE und in der Home App sieht es aber weiterhin so aus, als ob das Gerät erreichbar ist, auch wenn "reachable 0". Automatisch scheint das schonmal nicht zu funktionieren. Oder liegt das am "clear" in meinem homebridgeMapping?

Wegen dieser Vermutung zu meinem "clear" habe ich anschließend eine Reachable characteristic in meinem homebridgeMapping ergänzt:

homebridgeMapping
clear
Reachable=reachable,values=0:False;;1:True
On:power,cmdOn=on,cmdOff=off,valueOn=on,valueOff=off
LockPhysicalControls=child_lock,values=on:CONTROL_LOCK_ENABLED;;off:CONTROL_LOCK_DISABLED,cmds=CONTROL_LOCK_ENABLED:child_lock+on;CONTROL_LOCK_DISABLED:child_lock+off
RotationSpeed=level,minValue=0,maxValue=100,cmd=level,delay=1
TargetTiltAngle=angle,minValue=30,maxValue=120,minStep=30,cmd=angle
SwingMode=angle_enable,values=on:SWING_ENABLED;;off:SWING_DISABLED,cmdOn=angle_enable+on,cmdOff=angle_enable+off
CurrentRelativeHumidity=humidity
CurrentTemperature=temperature
BatteryLevel=batteryPercent,maxValue=100,minValue=0,minStep=1
StatusLowBattery=batteryState,values=ok:BATTERY_LEVEL_NORMAL;;low:BATTERY_LEVEL_LOW
ChargingState=charging,values=complete:NOT_CHARGING;;progress:CHARGING;;/.*/:NOT_CHARGEABLE
Mute:mode,cmdOn=mode+straight,cmdOff=mode+natural,valueOn=straight,valueOff=natural
AudioFeedback:buzzer,cmdOn=buzzer+on,cmdOff=buzzer+off,valueOn=on,valueOff=off
NightVision:led,cmdOn=led+off,cmdOff=led+bright,valueOn=off,valueOff=bright
CurrentFanState:power,values=on:BLOWING_AIR;;off:INACTIVE;;/.*/:IDLE
2bea633d-3a98-49a9-8b2b-8030196cdc34=speed,name=Motor,format=FLOAT,minStep=1,unit=U/min
history:size=1024


Auf der Konsole sehe ich dann folgendes, wenn das userReadings "reachable" von "0" zu "1" wechselt

Nov 18 10:28:46 omv4 homebridge[1981]:   2019-11-18 10:28:46 caching: OG_Buero_Ventilator-reachable: 1
Nov 18 10:28:46 omv4 homebridge[1981]: [2019-11-18 10:28:46] [FHEM]     caching: Reachable: true (as boolean; from '1')


Es funktioniert auch andersherum, wenn das userReadings "reachable" von "1" zu "0" wechselt, im laufenden Betrieb:

Nov 18 10:40:23 omv4 homebridge[1981]:   2019-11-18 10:40:23 caching: OG_Buero_Ventilator-reachable: 0
Nov 18 10:40:23 omv4 homebridge[1981]: [2019-11-18 10:40:23] [FHEM]     caching: Reachable: false (as boolean; from '0')


Bei meinen Recherchen bei Google bin ich über folgenden Issue gestolpert: https://github.com/justme-1968/homebridge-fhem/issues/51


Dieser Issue kann nun meiner Ansicht nach geschlossen werden. Das funktioniert astrein, auch bei Status-Veränderungen im Laufenden Betrieb.

Danke dir und Gruß Hoppel

Das List sieht so aus :

Internals:
   CID        DVES_AD7521
   DEF        DVES_AD7521
   DEVICETOPIC Gosund_4
   FUUID      5dd850a5-f33f-d9cb-5ce5-feb89050106e473b
   IODev      m2s
   LASTInputDev m2s
   MSGCNT     50
   NAME       Gosund_4
   NR         69
   STATE      on
Strom: 0.0 A
| Energie heute: 0.0 kWh
| Energie total: 552.5 kWh
| IP: <a href='http://192.168.178.40' target='_blank'>192.168.178.40</a>
   TYPE       MQTT2_DEVICE
   m2s_MSGCNT 50
   m2s_TIME   2020-07-16 16:30:10
   READINGS:
     2020-07-16 16:30:10   ENERGY_ApparentPower 0
     2020-07-16 16:30:10   ENERGY_Current  0.000
     2020-07-16 16:30:10   ENERGY_Factor   0.00
     2020-07-16 16:30:10   ENERGY_Period   0
     2020-07-16 16:30:10   ENERGY_Power    0
     2020-07-16 16:30:10   ENERGY_ReactivePower 0
     2020-07-16 16:30:10   ENERGY_Today    0.000
     2020-07-16 16:30:10   ENERGY_Total    552.544
     2020-07-16 16:30:10   ENERGY_TotalStartTime 2019-10-06T13:40:54
     2020-07-16 16:30:10   ENERGY_Voltage  245
     2020-07-16 16:30:10   ENERGY_Yesterday 0.010
     2020-07-16 16:25:01   FallbackTopic   cmnd/DVES_AD7521_fb/
     2020-07-16 16:25:01   GroupTopic      sonoffs
     2020-07-16 16:30:09   Heap            15
     2020-07-16 16:25:01   Hostname        sonoff_4-5409
     2020-07-16 16:25:01   IPAddress       192.168.178.40
     2020-07-16 16:25:01   LWT             Online
     2020-07-16 16:30:09   LoadAvg         19
     2020-07-16 16:25:01   Module          Gosund SP1 v23
     2020-05-11 22:01:18   OtaUrl          http://thehackbox.org/tasmota/release/sonoff-DE.bin
     2020-07-16 16:30:09   POWER1          on
     2020-07-16 16:25:01   RestartReason   Power on
     2019-12-01 18:56:58   SaveData        on
     2019-12-01 18:56:57   SetOption26     on
     2020-07-16 16:30:09   Sleep           50
     2020-07-16 16:30:09   SleepMode       Dynamic
     2019-12-01 18:56:56   StateText1      off
     2019-12-01 18:56:57   StateText2      on
     2019-12-01 18:56:57   StateText3      toggle
     2019-12-01 18:56:57   StateText4      hold
     2020-07-16 16:30:10   Time            2020-07-16T15:30:10
     2020-05-11 22:01:18   Upgrade         Version 6.6.0 from http://thehackbox.org/tasmota/release/sonoff-DE.bin
     2020-07-16 16:30:09   Uptime          0T00:05:17
     2020-07-16 16:30:10   Verbrauch       0
     2020-07-16 16:25:01   Version         6.6.0(release-sonoff)
     2020-07-16 16:25:01   WebServerMode   Admin
     2020-07-06 19:25:34   WifiConfig      WPSConfig selected
     2020-07-16 16:30:09   Wifi_AP         2
     2020-07-16 16:30:09   Wifi_BSSId      2C:3A:FD:AC:79:E1
     2020-07-16 16:30:09   Wifi_Channel    6
     2020-07-16 16:30:09   Wifi_Downtime   0T00:00:07
     2020-07-16 16:30:09   Wifi_LinkCount  1
     2020-07-16 16:30:09   Wifi_RSSI       78
     2020-07-16 16:30:09   Wifi_SSId       Mein Netz
     2020-07-16 16:30:10   state           on
     2020-07-16 14:45:13   subscriptions   cmnd/DVES_AD7521_fb/# cmnd/sonoff_4/# cmnd/sonoffs/#
     2020-05-10 16:28:37   upgrade         set
Attributes:
   IODev      m2s
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/sonoff_4/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon on:rc_GREEN:off off:rc_RED:on offline:rc_BLUE:off
   genericDeviceType outlet
   homebridgeMapping On=POWER1,values=on:on;off:off,OutletInUse=power
OutletInUse=ENERGY_Power,treshold=10
   icon       hue_filled_outlet
   model      tasmota_basic_state_power1
   readingList tele/sonoff_4/LWT:.* LWT
  tele/sonoff_4/STATE:.* { json2nameValue($EVENT) }
  tele/sonoff_4/SENSOR:.* { json2nameValue($EVENT) }
  tele/sonoff_4/INFO.:.* { json2nameValue($EVENT) }
  stat/sonoff_4/RESULT:.* { json2nameValue($EVENT) }
DVES_AD7521:cmnd/Sonoff_3/POWER:.* POWER
DVES_AD7521:stat/Sonoff_3/POWER1:.* POWER1
  tele/Sonoff_4/INFO1:.* { json2nameValue($EVENT) }
  tele/Sonoff_4/INFO2:.* { json2nameValue($EVENT) }
  tele/Sonoff_4/INFO3:.* { json2nameValue($EVENT) }
  stat/Sonoff_4/POWER1:.* POWER1
  tele/Sonoff_4/UPTIME:.* { json2nameValue($EVENT) }
DVES_AD7521:stat/Sonoff_3/UPGRADE:.* UPGRADE
   room       Homekit,MQTT2_DEVICE
   setList    off:noArg    cmnd/sonoff_4/POWER1 0
  on:noArg     cmnd/sonoff_4/POWER1 1
  toggle:noArg cmnd/sonoff_4/POWER1 2
  setOtaUrl:textField cmnd/sonoff_4/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/sonoff_4/upgrade 1
   setStateList on off toggle
   siriName   Gosund_4
   stateFormat [$name:state]
Strom: [$name:ENERGY_Current:r1] A
| Energie heute: [$name:ENERGY_Today:r1] kWh
| Energie total: [$name:ENERGY_Total:r1] kWh
| IP: <a href='http://[$name:IPAddress]' target='_blank'>[$name:IPAddress]</a>
   userReadings state {ReadingsVal($name,"POWER1","")}, Verbrauch difference {1000*ReadingsVal($name,"ENERGY_Total",0);}



Folgendes habe ich geändert :
Unter "homebridgemapping"

On=POWER1,values=on:on;off:off,OutletInUse=power
OutletInUse=ENERGY_Power,treshold=10
Reachable=reachable,values=0:False;;1:True


Unter "userReadings"

state {ReadingsVal($name,"POWER1","")}, Verbrauch difference {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","state","") eq "on") {return 1} else {return 0}}



Leider erscheint nun folgendes im Log von Fhem :


2020.07.16 16:42:21 1: PERL WARNING: Useless use of multiplication (*) in void context at (eval 86) line 1.
2020.07.16 16:42:21 3: eval: {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","state","") eq "on") {return 1} else {return 0}}
2020.07.16 16:43:12 1: PERL WARNING: Useless use of multiplication (*) in void context at (eval 347) line 1.
2020.07.16 16:43:12 3: eval: {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","state","") eq "on") {return 1} else {return 0}}
2020.07.16 16:45:09 1: PERL WARNING: Useless use of multiplication (*) in void context at (eval 362) line 1.
2020.07.16 16:45:09 3: eval: {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","state","") eq "on") {return 1} else {return 0}}
2020.07.16 16:45:10 1: PERL WARNING: Useless use of multiplication (*) in void context at (eval 365) line 1.
2020.07.16 16:45:10 3: eval: {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","state","") eq "on") {return 1} else {return 0}}
2020.07.16 16:50:09 1: PERL WARNING: Useless use of multiplication (*) in void context at (eval 398) line 1.
2020.07.16 16:50:09 3: eval: {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","state","") eq "on") {return 1} else {return 0}}
2020.07.16 16:50:10 1: PERL WARNING: Useless use of multiplication (*) in void context at (eval 401) line 1.
2020.07.16 16:50:10 3: eval: {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","state","") eq "on") {return 1} else {return 0}}


Da kollidieren scheinbar die Readings "ENERGY_Total" und mein "reachable"

Hat jemand einen Tip wie ich das lösen kann ??

Danke

amenomade

ZitatUnter "userReadings"
Code: [Auswählen]

state {ReadingsVal($name,"POWER1","")}, Verbrauch difference {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","state","") eq "on") {return 1} else {return 0}}

Also... das ganze hat mit homebridge/homekit wenig zu tun.

Ich würde kein "state" userReading definieren, es sei denn dein Device hat wirklich standardmässig kein
Kann man deine userReadings "im Kontext" sehen, sprich in einem "list" vom Device? Da fehlt mindestens ein Koma vor reachable, und wenn es wirklich mehrzeilig ist, muss auch irgendwie ein \ rein... wenn es ein Copy/Paste aus rawDef ist
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Sky

Danke für Deine Hilfe .

Das "list"vom Device sieht so aus :


Internals:
   CID        DVES_AD7521
   DEF        DVES_AD7521
   DEVICETOPIC Gosund_4
   FUUID      5dd850a5-f33f-d9cb-5ce5-feb89050106e473b
   IODev      m2s
   LASTInputDev m2s
   MSGCNT     79
   NAME       Gosund_4
   NR         69
   STATE      off
Strom: 0.0 A
| Energie heute: 0.0 kWh
| Energie total: 552.5 kWh
| IP: <a href='http://192.168.178.40' target='_blank'>192.168.178.40</a>
   TYPE       MQTT2_DEVICE
   m2s_MSGCNT 79
   m2s_TIME   2020-07-17 17:12:26
   READINGS:
     2020-07-17 17:12:26   ENERGY_ApparentPower 0
     2020-07-17 17:12:26   ENERGY_Current  0.000
     2020-07-17 17:12:26   ENERGY_Factor   0.00
     2020-07-17 17:12:26   ENERGY_Period   0
     2020-07-17 17:12:26   ENERGY_Power    0
     2020-07-17 17:12:26   ENERGY_ReactivePower 0
     2020-07-17 17:12:26   ENERGY_Today    0.000
     2020-07-17 17:12:26   ENERGY_Total    552.544
     2020-07-17 17:12:26   ENERGY_TotalStartTime 2019-10-06T13:40:54
     2020-07-17 17:12:26   ENERGY_Voltage  0
     2020-07-17 17:12:26   ENERGY_Yesterday 0.000
     2020-07-16 22:37:07   FallbackTopic   cmnd/DVES_AD7521_fb/
     2020-07-16 22:37:07   GroupTopic      sonoffs
     2020-07-17 17:12:25   Heap            15
     2020-07-16 22:37:07   Hostname        sonoff_4-5409
     2020-07-16 22:37:07   IPAddress       192.168.178.40
     2020-07-17 14:00:16   LWT             Online
     2020-07-17 17:12:25   LoadAvg         19
     2020-07-16 22:37:07   Module          Gosund SP1 v23
     2020-05-11 22:01:18   OtaUrl          http://thehackbox.org/tasmota/release/sonoff-DE.bin
     2020-07-17 17:12:25   POWER1          off
     2020-07-16 22:37:07   RestartReason   Power on
     2019-12-01 18:56:58   SaveData        on
     2019-12-01 18:56:57   SetOption26     on
     2020-07-17 17:12:25   Sleep           50
     2020-07-17 17:12:25   SleepMode       Dynamic
     2019-12-01 18:56:56   StateText1      off
     2019-12-01 18:56:57   StateText2      on
     2019-12-01 18:56:57   StateText3      toggle
     2019-12-01 18:56:57   StateText4      hold
     2020-07-17 17:12:26   Time            2020-07-17T16:12:25
     2020-05-11 22:01:18   Upgrade         Version 6.6.0 from http://thehackbox.org/tasmota/release/sonoff-DE.bin
     2020-07-17 17:12:25   Uptime          0T18:35:24
     2020-07-17 17:12:26   Verbrauch       0
     2020-07-16 22:37:07   Version         6.6.0(release-sonoff)
     2020-07-16 22:37:07   WebServerMode   Admin
     2020-07-06 19:25:34   WifiConfig      WPSConfig selected
     2020-07-17 17:12:25   Wifi_AP         2
     2020-07-17 17:12:25   Wifi_BSSId      2C:3A:FD:AC:79:E1
     2020-07-17 17:12:25   Wifi_Channel    6
     2020-07-17 17:12:25   Wifi_Downtime   0T00:00:04
     2020-07-17 17:12:25   Wifi_LinkCount  1
     2020-07-17 17:12:25   Wifi_RSSI       76
     2020-07-17 17:12:25   Wifi_SSId       Mein Netz
     2020-07-17 17:12:26   state           off
     2020-07-17 14:01:09   subscriptions   cmnd/DVES_AD7521_fb/# cmnd/sonoff_4/# cmnd/sonoffs/#
     2020-05-10 16:28:37   upgrade         set
Attributes:
   IODev      m2s
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/sonoff_4/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon on:rc_GREEN:off off:rc_RED:on offline:rc_BLUE:off
   genericDeviceType outlet
   homebridgeMapping On=POWER1,values=on:on;off:off,OutletInUse=power
OutletInUse=ENERGY_Power,treshold=10
Reachable=reachable,values=0:False;;1:True
   icon       hue_filled_outlet
   model      tasmota_basic_state_power1
   readingList tele/sonoff_4/LWT:.* LWT
  tele/sonoff_4/STATE:.* { json2nameValue($EVENT) }
  tele/sonoff_4/SENSOR:.* { json2nameValue($EVENT) }
  tele/sonoff_4/INFO.:.* { json2nameValue($EVENT) }
  stat/sonoff_4/RESULT:.* { json2nameValue($EVENT) }
DVES_AD7521:cmnd/Sonoff_3/POWER:.* POWER
DVES_AD7521:stat/Sonoff_3/POWER1:.* POWER1
  tele/Sonoff_4/INFO1:.* { json2nameValue($EVENT) }
  tele/Sonoff_4/INFO2:.* { json2nameValue($EVENT) }
  tele/Sonoff_4/INFO3:.* { json2nameValue($EVENT) }
  stat/Sonoff_4/POWER1:.* POWER1
  tele/Sonoff_4/UPTIME:.* { json2nameValue($EVENT) }
DVES_AD7521:stat/Sonoff_3/UPGRADE:.* UPGRADE
   room       Homekit,MQTT2_DEVICE
   setList    off:noArg    cmnd/sonoff_4/POWER1 0
  on:noArg     cmnd/sonoff_4/POWER1 1
  toggle:noArg cmnd/sonoff_4/POWER1 2
  setOtaUrl:textField cmnd/sonoff_4/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/sonoff_4/upgrade 1
   setStateList on off toggle
   siriName   Gosund_4
   stateFormat [$name:state]
Strom: [$name:ENERGY_Current:r1] A
| Energie heute: [$name:ENERGY_Today:r1] kWh
| Energie total: [$name:ENERGY_Total:r1] kWh
| IP: <a href='http://[$name:IPAddress]' target='_blank'>[$name:IPAddress]</a>
   userReadings state {ReadingsVal($name,"POWER1","")}, Verbrauch difference {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","LWT","") eq "online") {return 1} else {return 0}}



Ich habe allerdings das "Reading" LWT genommen, da dieses zuverlässig anzeigt wenn das Gosund-Device stromlos ist .
Dies wird entweder mit "Online" oder "Offline" angezeigt .

Leider funktioniert dies auch nicht .
Der Log sieht jetzt so aus :


2020.07.17 17:07:25 1: PERL WARNING: Useless use of multiplication (*) in void context at (eval 1699) line 1.
2020.07.17 17:07:25 3: eval: {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","LWT","") eq "online") {return 1} else {return 0}}
2020.07.17 17:07:26 1: PERL WARNING: Useless use of multiplication (*) in void context at (eval 1702) line 1.
2020.07.17 17:07:26 3: eval: {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","LWT","") eq "online") {return 1} else {return 0}}
2020.07.17 17:12:25 1: PERL WARNING: Useless use of multiplication (*) in void context at (eval 1739) line 1.
2020.07.17 17:12:25 3: eval: {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","LWT","") eq "online") {return 1} else {return 0}}
2020.07.17 17:12:26 1: PERL WARNING: Useless use of multiplication (*) in void context at (eval 1742) line 1.
2020.07.17 17:12:26 3: eval: {1000*ReadingsVal($name,"ENERGY_Total",0);}
reachable {if(ReadingsVal("Gosund_4","LWT","") eq "online") {return 1} else {return 0}}


Zitat von: amenomade am 16 Juli 2020, 22:16:31
Also... das ganze hat mit homebridge/homekit wenig zu tun.

Ich würde kein "state" userReading definieren, es sei denn dein Device hat wirklich standardmässig kein
Kann man deine userReadings "im Kontext" sehen, sprich in einem "list" vom Device? Da fehlt mindestens ein Koma vor reachable, und wenn es wirklich mehrzeilig ist, muss auch irgendwie ein \ rein... wenn es ein Copy/Paste aus rawDef ist

Wo und wie fehlt denn ein Komma bzw. ein \  ??
Wäre für Deine HIlfe dankbar .

Gruß
Wolfgang

amenomade

Zwischen Verbrauch und reachable hast Du einen Zeileinumbruch. Das muss ein Koma sein
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Sky

Ich habe dies jetzt geändert , leider ist da immer noch ein Fehler  .
Homebridgemapping :

On=POWER1,values=on:on;off:off,OutletInUse=power
OutletInUse=ENERGY_Power,treshold=10
Reachable=reachable,values=0:False;;1:True
[code]

userReadings :
[code]
state {ReadingsVal($name,"POWER1","")}, Verbrauch difference {1000*ReadingsVal($name,"ENERGY_Total",0);},
reachable {if(ReadingsVal("Gosund_4","LWT","") eq "online") {return 1} else {return 0}}
[code]

Wenn das Gosund-Device mit Strom versorgt ist :
[code]
Jul 17 18:38:59 raspberrypi homebridge[344]:   2020-07-17 18:38:59 caching: Gosund_4-POWER1: on
Jul 17 18:38:59 raspberrypi homebridge[344]: [7/17/2020, 6:38:59 PM] [FHEM]     caching: On: true (as boolean; from 'on')
Jul 17 18:39:01 raspberrypi homebridge[344]:   2020-07-17 18:39:01 caching: Gosund_4-POWER1: off
Jul 17 18:39:01 raspberrypi homebridge[344]: [7/17/2020, 6:39:01 PM] [FHEM]     caching: On: false (as boolean; from 'off')


Im Log :

2020-07-17_18:38:59 Gosund_4 POWER1: on
2020-07-17_18:38:59 Gosund_4 on
2020-07-17_18:38:59 Gosund_4 Verbrauch: 0
2020-07-17_18:38:59 Gosund_4 reachable: 0
2020-07-17_18:39:00 Gosund_4 set_off
2020-07-17_18:39:00 Gosund_4 on
2020-07-17_18:39:00 Gosund_4 Verbrauch: 0
2020-07-17_18:39:00 Gosund_4 reachable: 0
2020-07-17_18:39:01 Gosund_4 POWER1: off
2020-07-17_18:39:01 Gosund_4 off
2020-07-17_18:39:01 Gosund_4 Verbrauch: 0
2020-07-17_18:39:01 Gosund_4 reachable: 0


Obwohl das Reading "LWT" auf online steht liefert das Log "reachable : 0 " .
Laut userReading sollte dies aber auf reachable : 1 stehen

Verstehe ich im Moment nicht