Hallo zusammen,
ich habe das Problem, dass ich weder über die FHEM Oberfläche mit get datapoint 4.ACTUAL_TEMPERATURE
den Wert auslesen kann, noch über die Kommandozeile/konsole von FHEM. Bei der Oberfläche passiert einfach nichts und bei der Kommandozeile/konsole bekomme ich ein leeres Popup.
Ich nutze eine CCU3 und habe das Device mittels get ccu3 devicelist create .* t=dev f=%n defattr save
automatisch erstellen lassen und nur das homebridgemapping ergänzt.
Mache ich etwas falsch oder ist das ein Bug?
Vielen dank schonmal für eure Hilfe
Gruß
Chrizza
List vom Device: (ein paar werte mit ---- rausgenommen)
Internals:
DEF -------
FUUID ---------
IODev ccu3
NAME SZ_Thermostat
NR 293
STATE 20.0
TYPE HMCCUDEV
ccuaddr --------
ccudevstate active
ccuif BidCos-RF
ccuname SZ_Thermostat
ccutype HM-CC-RT-DN
channels 7
firmware 1.5
statevals devstate
READINGS:
2019-10-18 19:20:04 4.ACTUAL_TEMPERATURE 23.7
2019-10-18 19:20:04 4.BATTERY_STATE 3.0
2019-10-18 19:20:04 4.CONTROL_MODE MANU
2019-10-18 19:20:04 4.PARTY_TEMPERATURE 5.0
2019-10-18 19:20:04 4.SET_TEMPERATURE 20.0
2019-10-18 19:20:04 4.VALVE_STATE 0
2019-10-18 19:20:04 control 20.0
2019-10-18 19:20:04 hmstate 20.0
2019-10-18 19:20:04 state 20.0
hmccu:
devspec -------
dp:
0.AES_KEY:
OVAL 0
VAL 0
0.CONFIG_PENDING:
OVAL false
VAL false
0.DEVICE_IN_BOOTLOADER:
OVAL false
VAL false
0.INHIBIT:
OVAL false
VAL false
0.LOWBAT:
OVAL false
VAL false
0.RSSI_DEVICE:
OVAL 199
VAL 199
0.RSSI_PEER:
OVAL 192
VAL 192
0.STICKY_UNREACH:
OVAL true
VAL true
0.UNREACH:
OVAL false
VAL false
0.UPDATE_PENDING:
OVAL false
VAL false
4.ACTUAL_TEMPERATURE:
OSVAL 23.9
OVAL 23.900000
SVAL 23.7
VAL 23.700000
4.BATTERY_STATE:
OSVAL 3.0
OVAL 3.000000
SVAL 3.0
VAL 3.000000
4.BOOST_STATE:
OVAL 0
VAL 0
4.CONTROL_MODE:
OSVAL MANU
OVAL 1
SVAL MANU
VAL 1
4.FAULT_REPORTING:
OVAL 0
VAL 0
4.PARTY_START_DAY:
OVAL 1
VAL 1
4.PARTY_START_MONTH:
OVAL 1
VAL 1
4.PARTY_START_TIME:
OVAL 0
VAL 0
4.PARTY_START_YEAR:
OVAL 0
VAL 0
4.PARTY_STOP_DAY:
OVAL 1
VAL 1
4.PARTY_STOP_MONTH:
OVAL 1
VAL 1
4.PARTY_STOP_TIME:
OVAL 0
VAL 0
4.PARTY_STOP_YEAR:
OVAL 0
VAL 0
4.PARTY_TEMPERATURE:
OSVAL 5.0
OVAL 5.000000
SVAL 5.0
VAL 5.000000
4.SET_TEMPERATURE:
OSVAL 20.0
OVAL 20.000000
SVAL 20.0
VAL 20.000000
4.VALVE_STATE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
Attributes:
IODev ccu3
alias Schlafzimmerheizung
ccureadingfilter (TEMPERATURE|VALVE_STATE|CONTROL|BATTERY_STATE)
cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
controldatapoint 4.SET_TEMPERATURE
eventMap /datapoint 4.MANU_MODE 20.0:Manu/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost/datapoint 4.MANU_MODE 4.5:off/datapoint 4.MANU_MODE 30.5:on/
genericDeviceType thermostat
group Heizung
hmstatevals FAULT_REPORTING!1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve_error_pos
homebridgeMapping TargetTemperature=4.SET_TEMPERATURE::4.SET_TEMPERATURE,,minValue=5,maxValue=30,minStep=0.5,cmd=control,nocache=true CurrentTemperature=4.ACTUAL_TEMPERATURE
icon hm-cc-rt-dn
room 04_Schlafzimmer,97_Homekit
statedatapoint 4.SET_TEMPERATURE
stripnumber 1
substexcl control
substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on;FAULT_REPORTING!0:no,1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve:error_pos
webCmd control:Auto:Manu:Boost:on:off
widgetOverride control:slider,4.5,0.5,30.5,1
Das Reading ist ja da und hat den gleichen Zeitstempel wie die anderen.
Du könntest mal noch event-on-update-reading setzen.
Oder mal mit set clear alle Readings löschen und dann nochmal get datapoint oder get update ausführen, um zu sehen, ob das Reading neu angelegt wird.
Danke für die Antwort. Werde ich gleich heute Mittag mal testen und berichten.
Habe event-on-update-reading auf .* gesetzt und ein clear gemacht. Werte sind wieder da in den Readings (Zeitstempel stimmt).
Aber mit get SZ_Thermostat datapoint 4.ACTUAL_TEMPERATURE
bekomme ich wieder nur ein leeres popup und auch über die Oberfläche im Device passiert immer noch nichts (wie vorher).
Hat also leider nichts bewirkt :-(
Also bei mir funktioniert die Aktualisierung mit diesem Befehl. Das mit dem Popup ist noch ein Bug. Falls sich der Zeitstempel im Reading nicht verändert, aktualisiere mal die Browser-Seite.
Ja die Aktualisierung der readings geht auch (auf der oberfläche sichtbar). Aber ich kann den Datenpunkt nicht über den get auslesen.
Dies will ich nämlich später über ....webhook?cmd=get%20SZ_Thermostat%20datapoint%204.ACTUAL_TEMPERATURE&...
machen. Leider kommt dabei aber auch kein Wert raus.
Oder gibt es noch eine andere Möglichkeit an den Wert (von "außen") zu kommen?
Sorry, von Webhook habe ich keine Ahnung. Weiß auch nicht, welche Voraussetzungen ein Modul erfüllen muss, damit das funktioniert. Scheint mir jetzt auch kein Homematic Thema zu sein.
Also... "get Thermostat datapoint x" ist hier kein Kommando, das einen einzigen Wert als JSON o.ä. zurück bringt, sondern ein FHEM Kommando, das die Aktualisierung des Readings im Device anstosst.
Ich weiss nicht genau, was Du machen möchtest, aber vielleicht wäre cmd=jsonlist2 https://fhem.de/commandref_DE.html#JsonList2 oder cmd=list https://fhem.de/commandref_DE.html#list besser
Hey danke für den Tipp! Ich bin davon ausgegangen das der get mir auch den wert zurückliefert, danke für die Aufklärung, dass er damit nur den Wert aktualisiert.
Ich will nur an das Reading kommen sonst nichts. Am besten mit einem FHEM Befehl. Vorher hatte ich die CULFW und dort gab es die measured-temp als get. Deswegen dachte ich auch, dass mir dass get den Wert liefert.
Also ich kann nur mit JSONLIST auf das Reading zugreifen?
Probier mal im Kommandofeldjsonlist2 SZ_Thermostat STATE
, du wirst selbst sehen
Dank dir. Ja so geht es. Schöner wäre natürlich nur das reading auslesen zu können, wie vorher beim "CULFW Device" :-)
Danke für eure Hilfe, ich habe es nun mit jsonlist2 einfach gelöst und mir dann über Swift das Attribut aus dem JSON geholt.