HueDevice Update für Eurotronic Spirit ZigBee

Begonnen von Shojo, 13 Juni 2019, 21:43:20

Vorheriges Thema - Nächstes Thema

Shojo

Achso ich dachte eher an so was wie 
#Eurotronic Eurotronic Spirit ZigBee (SPZB0001)
'SPZB0001' => {name => 'Eurotronic Spirit ZigBee', type => 'ZHAThermostat' ,subType => 'thermostat',  icon => 'max_heizungsthermostat', },


usw
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Shojo

Die Infos werden leider nicht gezogen, ich finde mich leider nicht so gut in Perl ergo auch nicht so gut Modul zurecht.
Und finde daher nicht die Funktionen die dafür zuständig sind :(
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

Shojo

Zitat von: justme1968 am 15 Juni 2019, 12:47:58
wenn wir das ganze in ein AttrTemplate wäre das auch nicht schlecht.

Habe dazu noch nicht viel zu finden können, sehe ich das richtig das die AttrTemplates im Modul hinterlegt werden müssen?
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

justme1968

nein. die template liegen in .../FHEM/lib/AttrTemplate

es gibt irgendwo einen thread dazu. kann gerade nicht schauen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Shojo

#20
OK, bastle grade an einer huedevice.template :)

Klappt auch wunderbar ABER das will nicht gehen

attr DEVICE configList /mode (.*)/:{"mode":"$1"}\
/heatsetpoint (.*)/:{"heatsetpoint": $1 }\
/displayflipped (.*)/:{"displayflipped": $1 }\
/locked (.*)/:{"locked": $1 }

Ich habe immer nur den letzten Eintrag (in den Fall locked)

#Edit:
So das habe ich aktuell in der huedevice.template stehen:
(allerdings noch mit den oben beschriebenen Problem und auch das man das heatsetpoint * 100 nehmen müsste)

###########################################
# $Id: $
#
# Comments start with #. Empty lines are ignored.
# Syntax of one entry: name: line, one optional filter: line, zero or more par: lines,  FHEM-Commands
# filter:INTERNAL=VALUE (optional)
# par: name of the parameter; comment; perl_code (optional)
# perl_code returns a value for the parameter, or undef.
# If undef, the user has to specify them (the comment is shown to the user)


###########################################
# Eurotronic Spirit ZigBee (SPZB0001)
name:Eurotronic_Spirit_ZigBee_SPZB0001
filter:TYPE=HUEDevice
attr DEVICE configList /mode (.*)/:{"mode":"$1"}\
/heatsetpoint (.*)/:{"heatsetpoint": $1 }\
/displayflipped (.*)/:{"displayflipped": $1 }\
/locked (.*)/:{"locked": $1 }
attr DEVICE widgetOverride mode:auto,heat,off displayflipped:true,false locked:true,false heatsetpoint:16,16.5,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22
attr DEVICE icon max_heizungsthermostat

###########################################
# Xiaomi/Aqara Fenster Tür Sensor (lumi.sensor_magnet.aq2)
name:Xiaomi_Aqara_Window_Door_Sensor
filter:TYPE=HUEDevice
attr DEVICE devStateIcon open:fts_window_1w_open@#e56524 closed:fts_window_1w
attr DEVICE stateFormat state

###########################################
# Xiaomi/Aqara WSDCGQ11LM Temperatur Sensor (lumi.weather)
name:Xiaomi_Aqara_Temperature_Sensor
filter:TYPE=HUEDevice
attr DEVICE icon xiaomi_multi
attr DEVICE stateFormat T: temperature °C
# Xiaomi/Aqara WSDCGQ11LM Pressure Sensor (lumi.weather)
name:Xiaomi_Aqara_Pressure_Sensor
filter:TYPE=HUEDevice
attr DEVICE icon xiaomi_multi
attr DEVICE stateFormat P: pressure hPa
# Xiaomi/Aqara WSDCGQ11LM Humidity Sensor (lumi.weather)
name:Xiaomi_Aqara_Humidity_Sensor
filter:TYPE=HUEDevice
attr DEVICE icon xiaomi_multi
attr DEVICE stateFormat H: humidity %

###########################################
# Xiaomi/Aqara Motion Sensor (lumi.sensor_motion.aq2)
name:Xiaomi_Aqara_Motion_Sensor
filter:TYPE=HUEDevice
attr DEVICE devStateIcon motion:people_sensor@#e56524 nomotion:people_sensor@lightgray
attr DEVICE icon motion_detector
attr DEVICE stateFormat state
# Xiaomi/Aqara Lightlevel Sensor (lumi.sensor_motion.aq2)
name:Xiaomi_Aqara_Lightlevel_Sensor
filter:TYPE=HUEDevice
attr DEVICE icon IR
attr DEVICE stateFormat lux Lux
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

justme1968

#21
es könnte sein das es mit mehrzeiligen attributen noch probleme gibt.

ich meine Beta-User hat die meisten erfahrungen mit den templates. ich stupse ihn mal auf das problem hier.


das mit dem *100 müsste wie oben vorgeschlagen zweistufig über ein zusätzlichen cmdalias gehen. da kannst du rechnen. und dieser gibt es dann an das setList/configList kommando weiter
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Beta-User

Moin zusammen,

willkommen in der Welt der attrTemplates :) . Ich lese erst mal mit bzw. versuche das Problem zu verstehen, ich kenne hue nämlich (noch) nicht, und habe keinen Schimmer, wie die Attribute wirken, die ihr da vergeben wollt.
Vielleicht wäre es evtl. mal einen Test wert, ob es an den mittleren Doppelpunkten liegt? Rudi hat für die diversen Parameter ja einen Such- und Ersetzungsmechanismus reingebastelt, der kommt evtl. durch die Doppelpunkte (oder die slashes) aus dem Tritt...

Also erst mal sowas:
attr DEVICE configList /mode (.*)/{"mode":"$1"}\
/heatsetpoint (.*)/{"heatsetpoint": $1 }

Wenn das klappt, würde ich es dann mal mit escapen testen:
attr DEVICE configList /mode (.*)/\:{"mode":"$1"}\
/heatsetpoint (.*)/\:{"heatsetpoint": $1 }


Wenn es das nicht ist: evtl. dasselbe mit den slashes testen?
Ich vermute aber fast, ihr kommt mit dem Quellcode bei AttrTemplate.pm besser klar als ich oder solltet Rudi mal kontakten, der hat viele Anregungen (in meinem Fall rund um JSON) schnell aufgegriffen und in klasse-einfache Lösungen umgestrickt :) . Ist sicher kein großes Problem, das hier ähnlich zu halten.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Shojo

Zitat von: Shojo am 17 Juni 2019, 19:35:33

attr DEVICE configList /mode (.*)/:{"mode":"$1"}\
/heatsetpoint (.*)/:{"heatsetpoint": $1 }\
/displayflipped (.*)/:{"displayflipped": $1 }\
/locked (.*)/:{"locked": $1 }

Ich habe immer nur den letzten Eintrag (in den Fall locked)
Sorry hier habe ich mich etwas unverständlich ausgedrückt, das Problem ist hier nicht das attrTemplates!
Der Fehler tritt auch auf wenn ich das configList händisch setzte.

Zitat von: Beta-User am 18 Juni 2019, 17:55:17
Moin zusammen,

willkommen in der Welt der attrTemplates :) . Ich lese erst mal mit bzw. versuche das Problem zu verstehen,...........
Willkommen in der Runde freue mich über die Anteilnahme :)

Zitat von: justme1968 am 18 Juni 2019, 17:34:19
das mit dem *100 müsste wie oben vorgeschlagen zweistufig über ein zusätzlichen cmdalias gehen. da kannst du rechnen. und dieser gibt es dann an das setList/configList kommando weiter
Ich habe tatsächlich schon paar cmdalias am laufen bin nur am grübeln an welcher stelle ich das hier unterbringen könnte.... statt das heatsetpoint !?

/heatsetpoint (.*)/\:{"heatsetpoint": $1 }
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

justme1968

wie genau setzt du das configList denn ?

zum cmdalias: du konfigurierst zwei kommandos. eines über configList wie oben, und ein zweites mit cmdalias das den übergebenen wert mit dem faktor multipliziert und dann damit das configList kommando aufruft.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Shojo

#25
Zitat von: justme1968 am 18 Juni 2019, 21:34:10
wie genau setzt du das configList denn ?
Genau wie oben beschrieben :)

Habe mal ein List erstellt: 


Internals:
   DEF        sensor 50  IODev=deCONZ
   FUUID      5d039c94-f33f-7625-71a6-23836b235c099281
   FVERSION   31_HUEDevice.pm:0.195540/2019-06-05
   ID         S50
   INTERVAL   60
   IODev      deCONZ
   NAME       BU.Sensor.Thermostat
   NR         308
   STATE      Initialized
   TYPE       HUEDevice
   lastupdated 2019-06-18 19:52:18
   lastupdated_local 2019-06-18 21:52:18
   manufacturername Eurotronic
   modelid    SPZB0001
   name       SPZB0001
   on         1
   reachable  1
   swversion  20181205
   type       ZHAThermostat
   uniqueid   00:15:8d:00:01:92:2c:bf-01-0201
   READINGS:
     2019-06-18 20:29:55   battery         95
     2019-06-18 20:29:55   displayflipped  false
     2019-06-18 20:29:55   heatsetpoint    25.5
     2019-06-18 20:29:55   locked          false
     2019-06-18 20:29:55   mode            auto
     2019-06-18 20:29:55   reachable       true
     2019-06-18 21:52:18   temperature     24.17
     2019-06-18 21:52:18   valve           100
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     configList:
       regex:
         HASH(0x5624d745d2f8)
     setList:
Attributes:
   IODev      deCONZ
   configList /mode (.*)/:{"mode":"$1"}
/heatsetpoint (.*)/:{"heatsetpoint": $1 }
/displayflipped (.*)/:{"displayflipped": $1 }
/locked (.*)/:{"locked": $1 }
   icon       max_heizungsthermostat
   room       HUEDevice
   widgetOverride mode:auto,heat,off displayflipped:true,false locked:true,false heatsetpoint:16,16.5,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22


Was auffällt ist halt
configList:
       regex:
         HASH(0x5624d745d2f8)

und ich habe aber keine Ahnung was das sagen soll .
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

justme1968

#26
zum configList attribut: hab den fehler gefunden war noch ein tippfehler beim auswerten der attribute.

mit der angehängten version sollte es gehen.

edit: ist inzwischen eingecheckt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Shojo

FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Shojo

Bin grade noch mit den cmdAlias zugange, funktionier tut es aber gefallen tut es mir nicht .... 
defmod c_setX100 cmdalias setX100 .* AS {my $newVal = $EVTPART2 * 100;; fhem("set $EVTPART0 $EVTPART1 $newVal");;}
attr c_setX100 room 9.1_CMDAlias


Da man immer  setx100 BU.Sensor.Thermostat heatsetpoint 21 eingeben muss.

Sonst hast du alles im letzten Diff.
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It