Hallo,
nachdem zwei weitere HmIP Devices jetzt problemlos funktionieren, macht der Markisenaktor immer noch Zicken.
Der HmIP-FBL lässt sich steuern, aktualisiert aber die Readings nicht.
Am PROCRPC sollte es nicht liegen, da die anderen IPDevices ja funktionieren. Interface (HmIP-RF) eingetragen. Flag auch.
In der DeviceInfo stehen sofort die aktuellen Readings.
Get update bringt keine aktuellen Werte, nur die Aktualisierung durch Reload des Browsers bringt die richtigen Werte.
define HM_IP_Markise HMCCUDEV 001397099C46BA
attr HM_IP_Markise IODev d_ccu
attr HM_IP_Markise ccuget Value
attr HM_IP_Markise ccureadingfilter LEVEL
attr HM_IP_Markise ccureadings 1
attr HM_IP_Markise controldatapoint 4.LEVEL
attr HM_IP_Markise devStateIcon eingefahren:fts_sunblind_0 25%:fts_sunblind_20 50%:fts_sunblind_50 75%:fts_sunblind_70 ausgefahren:fts_sunblind_100
attr HM_IP_Markise event-on-change-reading 1
attr HM_IP_Markise eventMap /datapoint 4.LEVEL 1.0:einfahren/datapoint 4.LEVEL 0.7:25%/datapoint 4.LEVEL 0.5:50%/datapoint 4.LEVEL 0.2:75%/datapoint 4.LEVEL 0.0:ausfahren/
attr HM_IP_Markise room HomeMatic
attr HM_IP_Markise statedatapoint 3.LEVEL
attr HM_IP_Markise stripnumber 1
attr HM_IP_Markise substitute 3.LEVEL!(0.0):ausgefahren,(0.7):25%,(0.5):50%,(0.2):75%,(1.0):eingefahren
attr HM_IP_Markise verbose 3
attr HM_IP_Markise webCmd einfahren:25%:50%:75%:ausfahren
Wenn du ein get update machst, die Readings aber erst nach einem Reload des Browsers aktualisiert werden, liegt das meines Erachtens nicht an HMCCU. Der Reload löst ja keinen Request bei der CCU aus. Das macht get update, und das funktioniert offensichtlich.
Warum nutzt du eigentlich 3.LEVEL und 4.LEVEL?
Auch ein list des Device könnte hilfreich sein.
Nur noch mal zur Klärung, ein get update ist nicht nötig, nur der Browser reload.
Firefox und Safari zeigen gleiches Verhalten.
Idealerweise hätte ich gern einen Befehlskanal und einen getrennten Feedbackkanal, um zu sehen, dass der Befehl richtig empfangen wurde und ich nicht nur den "Knopfdruck" angezeigt bekomme.
Eine Anzeige z.B. der realen Markisenstellung ist ja mit vertretbarem Aufwand sowieso nicht machbar.
Nach dem List schau ich.
In der Art?
Wonach suchen?
Internals:
CHANGED
DEF 001397099C46BA
IODev d_ccu
NAME HM_IP_Markise
NR 307
STATE eingefahren
TYPE HMCCUDEV
ccuaddr 001397099C46BA
ccudevstate active
ccuif HmIP-RF
ccuname HM_IP_Markise
ccutype HmIP-FBL
channels 8
firmware 1.2.0
statevals devstate
READINGS:
2018-12-29 12:57:33 3.LEVEL eingefahren
2018-12-29 12:57:33 3.LEVEL_2 0.0
2018-12-29 12:57:33 3.LEVEL_2_STATUS 0
2018-12-29 12:57:33 3.LEVEL_STATUS 0
2018-12-29 12:57:33 4.LEVEL 1.0
2018-12-29 12:57:33 4.LEVEL_2 0.0
2018-12-29 12:57:33 4.LEVEL_2_STATUS 0
2018-12-29 12:57:33 4.LEVEL_STATUS 0
2018-12-29 12:57:34 5.LEVEL 0.0
2018-12-29 12:57:34 5.LEVEL_2 0.0
2018-12-29 12:57:34 5.LEVEL_2_STATUS 0
2018-12-29 12:57:34 5.LEVEL_STATUS 0
2018-12-29 12:57:34 6.LEVEL 0.0
2018-12-29 12:57:34 6.LEVEL_2 0.0
2018-12-29 12:57:34 6.LEVEL_2_STATUS 0
2018-12-29 12:57:34 6.LEVEL_STATUS 0
2018-12-29 12:57:33 activity 0
2018-12-29 12:57:33 control 1.0
2018-12-29 12:57:34 hmstate eingefahren
2018-12-29 12:57:33 state eingefahren
hmccu:
devspec 001397099C46BA
dp:
0.ACTUAL_TEMPERATURE:
OVAL 7.0
VAL 8.0
0.ACTUAL_TEMPERATURE_STATUS:
OVAL 0
VAL 0
0.CONFIG_PENDING:
OVAL 0
VAL 0
0.DUTY_CYCLE:
OVAL 0
VAL 0
0.ERROR_CODE:
OVAL 0
VAL 0
0.ERROR_OVERHEAT:
OVAL 0
VAL 0
0.ERROR_OVERLOAD:
OVAL false
VAL false
0.ERROR_UPDATE:
OVAL false
VAL false
0.OPERATING_VOLTAGE:
OVAL 0.000000
VAL 0.000000
0.RSSI_DEVICE:
OVAL -88
VAL -90
0.RSSI_PEER:
OVAL 167
VAL 167
0.UNREACH:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.UPDATE_PENDING:
OVAL false
VAL false
3.ACTIVITY_STATE:
OVAL 3
VAL 3
3.LEVEL:
OSVAL eingefahren
OVAL 1.0
SVAL eingefahren
VAL 1.0
3.LEVEL_2:
OSVAL 0.0
OVAL 0.0
SVAL 0.0
VAL 0.0
3.LEVEL_2_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
3.LEVEL_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
3.PROCESS:
OVAL 0
VAL 0
3.SECTION:
OVAL 0
VAL 0
3.SECTION_STATUS:
OVAL 1
VAL 1
4.ACTIVITY_STATE:
OVAL 3
VAL 3
4.LEVEL:
OSVAL 1.0
OVAL 1.0
SVAL 1.0
VAL 1.0
4.LEVEL_2:
OSVAL 0.0
OVAL 0.0
SVAL 0.0
VAL 0.0
4.LEVEL_2_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
4.LEVEL_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
4.PROCESS:
OVAL 0
VAL 0
4.SECTION:
OVAL 4
VAL 4
4.SECTION_STATUS:
OVAL 0
VAL 0
5.ACTIVITY_STATE:
OVAL 3
VAL 3
5.LEVEL:
OSVAL 0.0
OVAL 0.0
SVAL 0.0
VAL 0.0
5.LEVEL_2:
OSVAL 0.0
OVAL 0.0
SVAL 0.0
VAL 0.0
5.LEVEL_2_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
5.LEVEL_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
5.PROCESS:
OVAL 0
VAL 0
5.SECTION:
OVAL 0
VAL 0
5.SECTION_STATUS:
OVAL 0
VAL 0
6.ACTIVITY_STATE:
OVAL 3
VAL 3
6.LEVEL:
OSVAL 0.0
OVAL 0.0
SVAL 0.0
VAL 0.0
6.LEVEL_2:
OSVAL 0.0
OVAL 0.0
SVAL 0.0
VAL 0.0
6.LEVEL_2_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
6.LEVEL_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
6.PROCESS:
OVAL 0
VAL 0
6.SECTION:
OVAL 0
VAL 0
6.SECTION_STATUS:
OVAL 0
VAL 0
7.WEEK_PROGRAM_CHANNEL_LOCKS:
OVAL 0
VAL 0
Attributes:
IODev d_ccu
ccuget Value
ccureadingfilter LEVEL
ccureadings 1
controldatapoint 4.LEVEL
devStateIcon eingefahren:fts_sunblind_0 25%:fts_sunblind_20 50%:fts_sunblind_50 75%:fts_sunblind_70 ausgefahren:fts_sunblind_100
event-on-change-reading 1
eventMap /datapoint 4.LEVEL 1.0:einfahren/datapoint 4.LEVEL 0.7:25%/datapoint 4.LEVEL 0.5:50%/datapoint 4.LEVEL 0.2:75%/datapoint 4.LEVEL 0.0:ausfahren/
room HomeMatic
statedatapoint 3.LEVEL
stripnumber 1
substitute 3.LEVEL!(0.0):ausgefahren,(0.7):25%,(0.5):50%,(0.2):75%,(1.0):eingefahren
verbose 3
webCmd einfahren:25%:50%:75%:ausfahren
Bei allen HmIP Devices ergeben die Befehle get config/configdesc/configlist die Meldung
HMCCUDEV: HM_IP_<Device> No response from CCU. CCU returned no data
Ein via Eingabezeile fhem gesendetes
get HM_IP_<Device> datapoint 3.LEVEL
öffnet ein leeres Fenster mit "ok" aber keinen Wert.
Ist das normal bei IP Geräten?
event-on-change-reading 1
du solltest dir die funktion aller "event-on" attribute anschauen, besonders auch das zusammenspiel.
damit hast du festgelegt, dass nur das reading mit dem namen "1" events generiert, wenn sich der wert ändert.
in deinem fall also alles ausgeschaltet.
das frontend braucht natürlich events um zu aktualisieren.
mein vorschlag für alle readings bei änderung:
event-on-change-reading .*
get datapoint aktualisiert das zugehörige Reading. Bildschirmausgabe gibt es nicht.
Wenn die Readings im Hintergrund aktualisiert werden, jedoch erst nach einem Browser Reload angezeigt werden, liegt das Problem vermutlich bei den Browsern. JavaScript ist aktiviert?
Eventuell noch eine Variante: du hast event-on-change-reading auf 1 gesetzt. Was soll das bewirken? Da muss ein regulärer Ausdruck angegeben werden. Ggf mal mit .* versuchen.
Ok, frank war schneller :-)
::)
das event-on-change war es!!!
".*" funktioniert.
Herzlichen Dank Euch beiden und Guten Rutsch.