danielperna84 / hahomematic

Python 3 Interface for Home Assistant to interact with HomeMatic devices
MIT License
129 stars 21 forks source link

WinMatic: additional datapoints #223

Closed AlexaMiller closed 2 years ago

AlexaMiller commented 2 years ago

Is your feature request related to a problem? Please describe. it would be great to have full control of winmatic, including charging of the battery

Describe the solution you'd like additional datapoints available in winmatic device: Channel 1 [WINMATIC]:

Channel 2 [AKKU]

Describe alternatives you've considered currently getting those datapoint via mqtt - would be nice to use the integration

SukramJ commented 2 years ago

And what is the device type (like Hm ..., HmIP-BWTH)?

AlexaMiller commented 2 years ago

sorry, HM-Sec-Win of course i could provide device_descriptions/paramset_descriptions if you like?

danielperna84 commented 2 years ago

Was das Thema der zusätzlichen Entities angeht hatte ich letzte Nacht im Forum noch eine - für mich zumindest - neue Idee die man als Workaround für Sonderfälle dokumentieren könnte. Eigentlich wäre hierfür eine Separate Diskussion / Issue sinnvoll, aber da hier gerade schon jemand betroffenes dabei ist frage ich erst mal hier.

Also, wäre es ein denkbarer default-Workaround für bestimmte Parameter den Command line sensor als akzeptierte Lösung zu betrachten? Auf die Schnelle habe ich dafür folgendes Skript geschrieben:

#!/usr/bin/python3
import sys
from xmlrpc.client import ServerProxy

HOST = "http://1.2.3.4:2010"
ADDR = "00112233445566:0"
PARAM = "ACTUAL_TEMPERATURE"
PROXY = ServerProxy(HOST)
try:
    print(PROXY.getValue(ADDR, PARAM))
    sys.exit(0)
except Exception as err:
    print(err)
    sys.exit(1)

Das geht natürlich noch viel schöner mit extra Argumenten, pi pa po. Wie dem auch sei, wenn dieses Skript mit hahomematic installiert wird (man kann bei Python Paketen ja auch executables definieren die von der Shell ausführbar sind), dann könnte in der Doko stehen: "Für Parameter die nicht als Entity verfügbar sind (und auch nicht sein werden) bitte einen Command line sensor mit hmcli.py $URL $ADDR $PARAM nutzen".

Der Große Haken hierbei ist natürlich, dass das nicht auf Events basiert sondern aktiv pollt. Für sowas wie DIRECTION, WORKING und ERROR wäre dieser Ansatz also ggf. zu langsam. Aber der Akkuzustand z.B. dürfte sich ja nur gelegentlich ändern. Da wäre der Weg über das Polling doch eigentlich ganz ok, oder was meint ihr?

AlexaMiller commented 2 years ago

Bei unserer Installation macht HomeMatic und HomeMatic IP etwa 2/3 der Geräte aus. Als wir uns auf HomeMatic eingelassen haben war das zu einem nicht allzukleinen Anteil gerade WEGEN der virtuellen Kanäle und der exponierten Datenpunkte für jedes Gerät.

Ich verstehe schon dass Einsteiger in die Materie von der Vielzahl an Entities zuerst etwas überwältigt sind, allerdings ist das doch mit den versteckten Entities ganz brauchbar gelöst, oder? (Evtl auch ein setzbares Flag mit "Kindersicherung off - jetzt Zugriff auf alle Entities" - nur so ein Gedanke.)

Bezüglich der Einbindung von Parametern mittels Commandline-Sensor - ja natürlich, kann ich schon machen. Aber die Schönheit der Integration von HomeMatic geht zumindest für mich damit verloren. Ob ich die restlichen Datenpunkte jetzt mittels Commandline, mittels MQTT oder Brieftaube einbinde, macht dann schon keinen Unterschied mehr.

Wir fahren hier eine mittelgroße Installation - das sind unter anderem auch 15 WinMatics. Der Gedanke dass jede davon beginnt aktiv zu pollen ist nur bedingt attraktiv - somit würde die NodeRED Anbindung bestehen bleiben müssen. Und somit wieder ein weiterer Hop mehr, eine weitere Fehlerquelle.

Der one-stop-shop macht für mich die Besonderheit aus, die Möglichkeit alle anderen HomeMatic-Verbindungen und alternativen Interfaces zu kappen und alles zentral verwalten zu können - und eigentlich auch kaum mehr Grund zu haben ins WebInterface unserer CCUs zu sehen.

Just my 2cents. Ganz liebe Grüße aus Baden bei Wien, Alexa

SukramJ commented 2 years ago

@danielperna84 Also unter dem Aspekt, das es sich bei WINMATIC um ein sicherheitskritisches Produkt handelt kann ich den Bedarf nach den Parametern verstehen. Wobei das auch die Regel für die Ausnahme sein sollte.

Eine get_value service können wir leider nicht Implementieren, da die HA-Services keine Rückgabewerte erlauben.

danielperna84 commented 2 years ago

Also unter dem Aspekt, das es sich bei WINMATIC um ein sicherheitskritisches Produkt handelt kann ich den Bedarf nach den Parametern verstehen. Wobei das auch die Regel für die Ausnahme sein sollte.

Klingt vernünftig.

Eine get_value service können wir leider nicht Implementieren, da die HA-Services keine Rückgabewerte erlauben.

Ich weiß. Deshalb ja der Workaround über ein externes Skript, dass wir einfach mit hahomematic ausliefern könnten. Man braucht ja nur XML-RPC, und das gehört zum Python-Standard. Dürfte also ohne weiteres in jedem HA-Container out of the box funktionieren. Wie oben erwähnt behelfen sich die Leute augenscheinlich mit MQTT oder Node Red, was zusätzliche Dienste voraussetzt, und manchen vielleicht too much ist. Da wär's doch schön eine poll-basierte Möglichkeit direkt mit an Bord zu haben. 🤷‍♂️

SukramJ commented 2 years ago

@AlexaMiller sollte in 0.26.0 umgesetzt sein

SukramJ commented 2 years ago

@AlexaMiller werden dir die zusätzlichen Werte richtig angezeigt? Ich habe keine WinMatic zum testen.

AlexaMiller commented 2 years ago

Servus,

zur Einbindung der WinMatic:

Mit lieben Grüßen, Alexa

SukramJ commented 2 years ago

Moin, danke für die Rückmeldung. Frage zum Level: sind das nur die drei festen Werte, oder gibt es auch Zwischenwerte?

VG

SukramJ commented 2 years ago

Was ist eine sinnvolle deutsche Übersetzung für: 1 = MOTOR_TURN_ERROR 2 = MOTOR_TILT_ERROR

AlexaMiller commented 2 years ago

LEVEL: kann auch Werte dazwischen annehmen (aktuell zB 0.4)

ERROR=MOTOR_TILT_ERROR Fehler Kippantrieb ERROR=MOTOR_TURN_ERROR Fehler Drehantrieb

AlexaMiller commented 2 years ago

Schamlos aus dem Homematic-Forum gefladdert: AKKU|LEVEL Ladezustand AKKU|STATUS=CHARGE Ladend AKKU|STATUS=DISCHARGE Versorgung durch Akku AKKU|STATUS=STATE_UNKNOWN Zustand unbekannt AKKU|STATUS=TRICKLE_CHARGE Erhaltungsladung BACKLIGHT_AT_CHARGE Beleuchtung bei Betrieb in Ladeschale BACKLIGHT_AT_KEYSTROKE Beleuchtung bei Tastenbetätigung BACKLIGHT_AT_MOTION Beleuchtung bei Bewegung/Erschütterung BACKLIGHT_ON_TIME Beleuchtungsdauer BLIND|CHANGE_OVER_DELAY Motorrichtungsumschaltzeit BLIND|LEVEL Behanghöhe BLIND|REFERENCE_RUNNING_TIME_BOTTOM_TOP Fahrzeit von unten nach oben BLIND|REFERENCE_RUNNING_TIME_TOP_BOTTOM Fahrzeit von oben nach unten BLIND|REFERENCE_RUN_COUNTER Anzahl der Fahrten bis zur automatischen Kalibrierfahrt BLIND|STOP Anhalten BURST_RX Wake-On-Radio BUTTON_LOCK Tastensperre CENTRAL_KEY|DBL_PRESS_TIME Doppel-Klick-Zeit (Tastensperre) CENTRAL_KEY|LONG_PRESS_TIME Mindestdauer für langen Tastendruck CLIMATECONTROL_REGULATOR|ADJUSTING_COMMAND Stellbefehl CLIMATECONTROL_REGULATOR|ADJUSTING_DATA Stelldaten CLIMATECONTROL_REGULATOR|DECALCIFICATION_DAY Entkalkungstag CLIMATECONTROL_REGULATOR|DECALCIFICATION_HOUR Entkalkungsstunde CLIMATECONTROL_REGULATOR|DECALCIFICATION_MINUTE Entkalkungsminute CLIMATECONTROL_REGULATOR|DISPLAY_TEMPERATUR_HUMIDITY_CHANGE Anzeige-Modus CLIMATECONTROL_REGULATOR|DISPLAY_TEMPERATUR_HUMIDITY_CHANGE=TEMPERATUR_AND_HUMIDITY Temperatur und Feuchtigkeit CLIMATECONTROL_REGULATOR|DISPLAY_TEMPERATUR_HUMIDITY_CHANGE=TEMPERATUR_ONLY Temperatur CLIMATECONTROL_REGULATOR|DISPLAY_TEMPERATUR_INFORMATION Anzeige im Display CLIMATECONTROL_REGULATOR|DISPLAY_TEMPERATUR_INFORMATION=ACTUAL_VALUE Aktuelle Temperatur CLIMATECONTROL_REGULATOR|DISPLAY_TEMPERATUR_INFORMATION=SET_POINT Solltemperatur CLIMATECONTROL_REGULATOR|DISPLAY_TEMPERATUR_UNIT Temperatureinheit CLIMATECONTROL_REGULATOR|DISPLAY_TEMPERATUR_UNIT=CELSIUS Grad Celsius CLIMATECONTROL_REGULATOR|DISPLAY_TEMPERATUR_UNIT=FAHRENHEIT Grad Fahrenheit CLIMATECONTROL_REGULATOR|MODE_TEMPERATUR_REGULATOR Temperaturreglermodus CLIMATECONTROL_REGULATOR|MODE_TEMPERATUR_REGULATOR=AUTO automatisch CLIMATECONTROL_REGULATOR|MODE_TEMPERATUR_REGULATOR=CENTRAL zentral CLIMATECONTROL_REGULATOR|MODE_TEMPERATUR_REGULATOR=MANUAL manuell CLIMATECONTROL_REGULATOR|MODE_TEMPERATUR_REGULATOR=PARTY Party CLIMATECONTROL_REGULATOR|MODE_TEMPERATUR_VALVE Heizungsventilmodus CLIMATECONTROL_REGULATOR|MODE_TEMPERATUR_VALVE=AUTO automatisch CLIMATECONTROL_REGULATOR|MODE_TEMPERATUR_VALVE=CLOSE_VALVE geschlossen CLIMATECONTROL_REGULATOR|MODE_TEMPERATUR_VALVE=OPEN_VALVE offen CLIMATECONTROL_REGULATOR|PARTY_END_TIME Party/Urlaub-Endzeit CLIMATECONTROL_REGULATOR|SETPOINT Sollwert CLIMATECONTROL_REGULATOR|SETPOINT=VENT_CLOSED Ventil schließen CLIMATECONTROL_REGULATOR|SETPOINT=VENT_OPEN Ventil öffnen CLIMATECONTROL_REGULATOR|TEMPERATUR_COMFORT_VALUE Komforttemperatur CLIMATECONTROL_REGULATOR|TEMPERATUR_LOWERING_VALUE Absenktemperatur CLIMATECONTROL_REGULATOR|TEMPERATUR_PARTY_VALUE Party/Urlaub-Temperatur CLIMATECONTROL_REGULATOR|TEMPERATUR_SET_POINT Solltemperatur CLIMATECONTROL_REGULATOR|TEMPERATUR_WINDOW_OPEN_VALUE Fenster-Auf-Temperatur CLIMATECONTROL_VENT_DRIVE|ERROR=ADJUSTING_RANGE_TO_SMALL Stellbereich zu klein CLIMATECONTROL_VENT_DRIVE|ERROR=LOWBAT Störungsposition angefahren, Batterien nahezu entladen CLIMATECONTROL_VENT_DRIVE|ERROR=VALVE_DRIVE_BLOCKED Ventilantrieb schwergängig oder blockiert CLIMATECONTROL_VENT_DRIVE|ERROR=VALVE_DRIVE_LOOSE Ventilantrieb nicht montiert oder Stellbereich zu gross CLIMATECONTROL_VENT_DRIVE|VALVE_ERROR_POSITION Ventilantrieb Störungsposition CLIMATECONTROL_VENT_DRIVE|VALVE_OFFSET_VALUE Ventilantrieb Offsetstellung CLIMATECONTROL_VENT_DRIVE|VALVE_STATE Ventilantrieb Status CYCLIC_INFO_MSG Zyklische Statusmeldung CYCLIC_INFO_MSG_PAUSE Intervall für zyklische Statusmeldung DIMMER|ERROR=LOAD_FAILURE Lastfehler DIMMER|LEVEL Dimmwert DIMMER|LOAD_ERROR_CALIB Lastausfallkalibrierung DIMMER|OLD_LEVEL Letzter Dimmwert DIMMER|ON_TIME Einschaltdauer DIMMER|RAMP_TIME Dimmzeit DISPLAY_BACKLIGHT_MODE Displayhinterleuchtungsmodus DISPLAY_BACKLIGHT_MODE=AUTO automatisch DISPLAY_BACKLIGHT_MODE=OFF aus DISPLAY_BACKLIGHT_TIME Displayhinterleuchtungszeit DISPLAY|ALARM_COUNT Anzahl Alarmmeldungen DISPLAY|ARROW_DOWN Pfeilsymbol runter DISPLAY|ARROW_UP Pfeilsymbol rauf DISPLAY|BACKLIGHT Beleuchtung ein DISPLAY|BACKLIGHT=BLINK_FAST Beleuchtung schnell blinkend DISPLAY|BACKLIGHT=BLINK_SLOW Beleuchtung langsam blinkend DISPLAY|BACKLIGHT=OFF Beleuchtung aus DISPLAY|BACKLIGHT=ON Beleuchtung ein DISPLAY|BACKLIGHT_AT_ALARM Beleuchtung bei Alarmnachricht DISPLAY|BACKLIGHT_AT_ALARM=BLINK_FAST Schnell blinkend DISPLAY|BACKLIGHT_AT_ALARM=BLINK_SLOW Langsam blinkend DISPLAY|BACKLIGHT_AT_ALARM=OFF Aus DISPLAY|BACKLIGHT_AT_ALARM=ON Ein DISPLAY|BACKLIGHT_AT_SERVICE Beleuchtung bei Servicenachricht DISPLAY|BACKLIGHT_AT_SERVICE=BLINK_FAST Schnell blinkend DISPLAY|BACKLIGHT_AT_SERVICE=BLINK_SLOW Langsam blinkend DISPLAY|BACKLIGHT_AT_SERVICE=OFF Aus DISPLAY|BACKLIGHT_AT_SERVICE=ON Ein DISPLAY|BACKLIGHT_AT_STATUS Beleuchtung bei Statusnachricht DISPLAY|BACKLIGHT_AT_STATUS=BLINK_FAST Schnell blinkend DISPLAY|BACKLIGHT_AT_STATUS=BLINK_SLOW Langsam blinkend DISPLAY|BACKLIGHT_AT_STATUS=OFF Aus DISPLAY|BACKLIGHT_AT_STATUS=ON Ein DISPLAY|BEEP=NONE Kein Ton DISPLAY|BEEP=TONE1 Ton 1 DISPLAY|BEEP=TONE2 Ton 2 DISPLAY|BEEP=TONE3 Ton 3 DISPLAY|BEEP_AT_ALARM Alarmton DISPLAY|BEEP_AT_ALARM=NONE Aus DISPLAY|BEEP_AT_ALARM=TONE1 Ton 1 DISPLAY|BEEP_AT_ALARM=TONE2 Ton 2 DISPLAY|BEEP_AT_ALARM=TONE3 Ton 3 DISPLAY|BEEP_AT_SERVICE Serviceton DISPLAY|BEEP_AT_SERVICE=NONE Aus DISPLAY|BEEP_AT_SERVICE=TONE1 Ton 1 DISPLAY|BEEP_AT_SERVICE=TONE2 Ton 2 DISPLAY|BEEP_AT_SERVICE=TONE3 Ton 3 DISPLAY|BEEP_AT_STATUSINFO Statuston DISPLAY|BEEP_AT_STATUSINFO=NONE Aus DISPLAY|BEEP_AT_STATUSINFO=TONE1 Ton 1 DISPLAY|BEEP_AT_STATUSINFO=TONE2 Ton 2 DISPLAY|BEEP_AT_STATUSINFO=TONE3 Ton 3 DISPLAY|BELL Glockensymbol DISPLAY|BLIND Rollladensymbol DISPLAY|BULB Lampensymbol DISPLAY|CLOCK Uhrsymbol DISPLAY|DOOR Türsymbol DISPLAY|MESSAGE_SHOW_TIME Anzeigedauer für Zentralen-Nachrichten DISPLAY|MESSAGE_SHOW_TIME=PERMANENT dauerhaft DISPLAY|PHONE Telefonsymbol DISPLAY|SCENE Szenensymbol DISPLAY|SERVICE_COUNT Anzahl Servicemeldungen DISPLAY|SUBMIT Displaynachricht übertragen DISPLAY|SWITCH Schaltersymbol DISPLAY|TEXT Text DISPLAY|UNIT=CELSIUS Einheit Celsius DISPLAY|UNIT=FAHRENHEIT Einheit Fahrenheit DISPLAY|UNIT=NONE Keine Einheit DISPLAY|UNIT=PERCENT Einheit Prozent DISPLAY|UNIT=WATT Einheit Watt DISPLAY|WINDOW Fenstersymbol ERROR=NO_ERROR Kein Fehler INHIBIT=FALSE Sperrung inaktiv INHIBIT=TRUE Sperrung aktiv INPUT_OUTPUT|BEHAVIOUR Funktion INPUT_OUTPUT|BEHAVIOUR=INPUT Eingang INPUT_OUTPUT|BEHAVIOUR=OUTPUT Ausgang INPUT_OUTPUT|INPUT_LOCKED Eingang gesperrt INPUT_OUTPUT|INPUT_TYPE Eingangsbeschaltung INPUT_OUTPUT|INPUT_TYPE=PUSHBUTTON Taster INPUT_OUTPUT|INPUT_TYPE=SWITCH Schalter INPUT_OUTPUT|LONGPRESS_TIME Zeit bis langer Tastendruck erkannt wird INPUT_OUTPUT|LONG_PRESS_TIME Zeit bis langer Tastendruck erkannt wird INPUT_OUTPUT|STATE=FALSE Schaltzustand: aus INPUT_OUTPUT|STATE=TRUE Schaltzustand: ein KEYMATIC|ANGLE_LOCKED Drehwinkel Stellung Verriegelt KEYMATIC|ANGLE_MAX Drehwinkel Endanschlag Verriegelt KEYMATIC|ANGLE_OPEN Drehwinkel Endanschlag Tür Öffnen KEYMATIC|ERROR=CLUTCH_FAILURE Einkuppeln fehlgeschlagen KEYMATIC|ERROR=MOTOR_ABORTED Motorlauf abgebrochen KEYMATIC|HOLD_PWM Motorkraft Haltezeit Tür Öffnen KEYMATIC|HOLD_TIME Haltezeit Tür Öffnen KEYMATIC|LED_FLASH_LOCKED LED blinkt wenn verriegelt KEYMATIC|LED_FLASH_UNLOCKED LED blinkt wenn nicht verriegelt KEYMATIC|OPEN Tür öffnen KEYMATIC|RELOCK_DELAY Automatisch verriegeln nach Zeit KEYMATIC|RELOCK_DELAY=NOT_USED Nicht automatisch verriegeln KEYMATIC|SETUP_DIR Drehrichtung Verriegeln KEYMATIC|SETUP_DIR=LEFT nach links KEYMATIC|SETUP_DIR=RIGHT nach rechts KEYMATIC|SETUP_POSITION Drehwinkel Neutralstellung KEYMATIC|STATE=FALSE Schloß verriegelt KEYMATIC|STATE=TRUE Schloß entriegelt KEYMATIC|STATE_UNCERTAIN=FALSE Schloßzustand bekannt KEYMATIC|STATE_UNCERTAIN=TRUE Schloßzustand unbekannt KEYPRESS_SIGNAL Tastenton KEY|DBL_PRESS_TIME Doppel-Klick-Zeit (Tastensperre) KEY|INPUT_LOCKED Eingang gesperrt KEY|INPUT_TYPE Eingangsbeschaltung KEY|INPUT_TYPE=PUSHBUTTON Taster KEY|INPUT_TYPE=SWITCH Schalter KEY|LONG_PRESS_TIME Mindestdauer für langen Tastendruck LANGUAGE Sprache LANGUAGE=ENGLISH Englisch LANGUAGE=GERMAN Deutsch LIVE_MODE_RX Live Mode LOGGING Logging LOGGING=FALSE deaktiviert LOGGING=OFF deaktiviert LOGGING=ON aktiviert LOGGING=TRUE aktiviert LOGGING_TIME Zeit nach der Logging-Meldung verschickt wird MAINTENANCE|CONFIG_PENDING Konfigurationsdaten stehen zur Übertragung an MAINTENANCE|LOWBAT Batterieladezustand gering MAINTENANCE|STICKY_UNREACH Gerätekommunikation war gestört MAINTENANCE|UNREACH Gerätekommunikation aktuell gestört MOTION_DETECTOR|BRIGHTNESS Helligkeit MOTION_DETECTOR|BRIGHTNESS_FILTER Helligkeitsfilter MOTION_DETECTOR|ERROR=SABOTAGE Sabotage MOTION_DETECTOR|EVENT_FILTER_NUMBER Empfindlichkeit MOTION_DETECTOR|EVENT_FILTER_PERIOD Filterzeitraum MOTION_DETECTOR|LED_ONTIME LED-Leuchtzeit (gn/rt) MOTION_DETECTOR|MIN_INTERVAL Mindestsendeabstand MOTION_DETECTOR|MOTION=FALSE keine Bewegung MOTION_DETECTOR|MOTION=TRUE Bewegung erkannt MOTION_DETECTOR|CAPTURE_WITHIN_INTERVAL Innerhalb des Sendeabstandes erkannte Bewegung senden: POWER|BAT_LEVEL Batteriekapazität POWER|LOWBAT=FALSE Batterie OK POWER|LOWBAT=TRUE Batterie leer POWER|USBH_POWERFAIL=FALSE USB-Host OK POWER|USBH_POWERFAIL=TRUE USB-Host deaktiviert POWER|U_SOURCE_FAIL=FALSE Netzteil OK POWER|U_SOURCE_FAIL=TRUE Netzteil ausgefallen POWER|U_USBD_OK=FALSE USB nicht aktiv POWER|U_USBD_OK=TRUE USB aktiv PRESS_LONG Tastendruck lang PRESS_LONG=TRUE Tastendruck lang PRESS_SHORT Tastendruck kurz PRESS_SHORT=TRUE Tastendruck kurz PULSE_SENSOR|SEQUENCE_OK Sequenz erkannt PULSE_SENSOR|SEQUENCE_PULSE_1 Puls 1 in s PULSE_SENSOR|SEQUENCE_PULSE_1=NOT_USED nicht benutzt PULSE_SENSOR|SEQUENCE_PULSE_2 Pause 1 in s PULSE_SENSOR|SEQUENCE_PULSE_2=NOT_USED nicht benutzt PULSE_SENSOR|SEQUENCE_PULSE_3 Puls 2 in s PULSE_SENSOR|SEQUENCE_PULSE_3=NOT_USED nicht benutzt PULSE_SENSOR|SEQUENCE_PULSE_4 Pause 2 in s PULSE_SENSOR|SEQUENCE_PULSE_4=NOT_USED nicht benutzt PULSE_SENSOR|SEQUENCE_PULSE_5 Puls 3 in s PULSE_SENSOR|SEQUENCE_PULSE_5=NOT_USED nicht benutzt PULSE_SENSOR|SEQUENCE_TOLERANCE Toleranz in s ROTARY_HANDLE_SENSOR|ERROR=SABOTAGE Sabotage ROTARY_HANDLE_SENSOR|EVENT_DELAYTIME Meldeverzögerung ROTARY_HANDLE_SENSOR|LED_ONTIME LED-Leuchtzeit (gn/rt) ROTARY_HANDLE_SENSOR|MSG_FOR_POS_A Meldung in Position unten ROTARY_HANDLE_SENSOR|MSG_FOR_POS_A=CLOSED zu ROTARY_HANDLE_SENSOR|MSG_FOR_POS_A=NO_MSG keine Meldung ROTARY_HANDLE_SENSOR|MSG_FOR_POS_A=OPEN offen ROTARY_HANDLE_SENSOR|MSG_FOR_POS_A=TILTED gekippt ROTARY_HANDLE_SENSOR|MSG_FOR_POS_B Meldung in Position quer ROTARY_HANDLE_SENSOR|MSG_FOR_POS_B=CLOSED zu ROTARY_HANDLE_SENSOR|MSG_FOR_POS_B=NO_MSG keine Meldung ROTARY_HANDLE_SENSOR|MSG_FOR_POS_B=OPEN offen ROTARY_HANDLE_SENSOR|MSG_FOR_POS_B=TILTED gekippt ROTARY_HANDLE_SENSOR|MSG_FOR_POS_C Meldung in Position oben ROTARY_HANDLE_SENSOR|MSG_FOR_POS_C=CLOSED zu ROTARY_HANDLE_SENSOR|MSG_FOR_POS_C=NO_MSG keine Meldung ROTARY_HANDLE_SENSOR|MSG_FOR_POS_C=OPEN offen ROTARY_HANDLE_SENSOR|MSG_FOR_POS_C=TILTED gekippt ROTARY_HANDLE_SENSOR|STATE=CLOSED Fensterzustand: verriegelt ROTARY_HANDLE_SENSOR|STATE=OPEN Fensterzustand: offen ROTARY_HANDLE_SENSOR|STATE=TILTED Fensterzustand: gekippt SABOTAGE_MSG Sabotagemeldung SABOTAGE|SHAKING Sabotagekontakt SHUTTER_CONTACT|ERROR=SABOTAGE Sabotage SHUTTER_CONTACT|EVENT_DELAYTIME Meldeverzögerung SHUTTER_CONTACT|LED_ONTIME LED-Leuchtzeit (gn/rt) SHUTTER_CONTACT|MSG_FOR_POS_A Meldung in Position geschlossen SHUTTER_CONTACT|MSG_FOR_POS_A=CLOSED zu SHUTTER_CONTACT|MSG_FOR_POS_A=NO_MSG keine Meldung SHUTTER_CONTACT|MSG_FOR_POS_A=OPEN offen SHUTTER_CONTACT|MSG_FOR_POS_B Meldung in Position offen SHUTTER_CONTACT|MSG_FOR_POS_B=CLOSED zu SHUTTER_CONTACT|MSG_FOR_POS_B=NO_MSG keine Meldung SHUTTER_CONTACT|MSG_FOR_POS_B=OPEN offen SHUTTER_CONTACT|STATE=FALSE geschlossen SHUTTER_CONTACT|STATE=TRUE offen SIGNAL Bestätigungston SIGNAL_TONE Klang Bestätigungston SIGNAL_TONE=HIGH hoch SIGNAL_TONE=LOW tief SIGNAL_TONE=MID mittel SIGNAL_TONE=VERY_HIGH sehr hoch SMOKE_DETECTOR_TEAM|STATE=FALSE Kein Rauch erkannt SMOKE_DETECTOR_TEAM|STATE=TRUE Rauch erkannt SWITCH_INTERFACE|STATE=FALSE Schalterposition: unten gedrückt SWITCH_INTERFACE|STATE=TRUE Schalterposition: oben gedrückt SWITCH|ON_TIME Einschaltdauer SWITCH|STATE=FALSE Schaltzustand: aus SWITCH|STATE=TRUE Schaltzustand: ein TILT_SENSOR|EVENT_FILTERTIME Filterzeit TILT_SENSOR|LED_ONTIME LED-Leuchtzeit (gn/rt) TILT_SENSOR|MSG_FOR_POS_A Meldung in Position senkrecht TILT_SENSOR|MSG_FOR_POS_A=CLOSED zu TILT_SENSOR|MSG_FOR_POS_A=NO_MSG keine Meldung TILT_SENSOR|MSG_FOR_POS_A=OPEN auf TILT_SENSOR|MSG_FOR_POS_B Meldung in Position waagerecht TILT_SENSOR|MSG_FOR_POS_B=CLOSED zu TILT_SENSOR|MSG_FOR_POS_B=NO_MSG keine Meldung TILT_SENSOR|MSG_FOR_POS_B=OPEN auf TILT_SENSOR|STATE=FALSE Zustand geschlossen TILT_SENSOR|STATE=TRUE Zustand offen TRANSMIT_TRY_MAX Max. Sendeversuche TRANSMIT_DEV_TRY_MAX Max. Sendeversuche VIRTUAL_KEY|LEVEL Prozentwert senden WATERDETECTIONSENSOR|EVENT_FILTERTIME Filterzeit WATERDETECTIONSENSOR|MSG_FOR_POS_A Trockenheit WATERDETECTIONSENSOR|MSG_FOR_POS_A=DRY Trocken WATERDETECTIONSENSOR|MSG_FOR_POS_A=NO_MSG keine Meldung WATERDETECTIONSENSOR|MSG_FOR_POS_B Feuchtigkeit WATERDETECTIONSENSOR|MSG_FOR_POS_B=DRY Trocken WATERDETECTIONSENSOR|MSG_FOR_POS_B=NO_MSG keine Meldung WATERDETECTIONSENSOR|MSG_FOR_POS_B=WATER Wasserstand erkannt WATERDETECTIONSENSOR|MSG_FOR_POS_B=WET Feuchtigkeit erkannt WATERDETECTIONSENSOR|MSG_FOR_POS_C Wasserstand WATERDETECTIONSENSOR|MSG_FOR_POS_C=NO_MSG keine Meldung WATERDETECTIONSENSOR|MSG_FOR_POS_C=WATER Wasserstand erkannt WATERDETECTIONSENSOR|MSG_FOR_POS_C=WET Feuchtigkeit erkannt WATERDETECTIONSENSOR|STATE=DRY Trocken WATERDETECTIONSENSOR|STATE=WATER Wasserstand erkannt WATERDETECTIONSENSOR|STATE=WET Feuchtigkeit erkannt WEATHER|AIR_PRESSURE Luftdruck WEATHER|BRIGHTNESS Helligkeit WEATHER|HUMIDITY Relative Luftfeuchte WEATHER|RAINING Regen WEATHER|RAINING=FALSE aktuell kein Regen WEATHER|RAINING=TRUE aktuell Regen WEATHER|RAIN_COUNTER Regenmenge WEATHER|STORM_LOWER_THRESHOLD Windalarm-Ausschalt-Schwelle WEATHER|STORM_UPPER_THRESHOLD Windalarm-Einschalt-Schwelle WEATHER|SUNSHINEDURATION Sonnenscheindauer WEATHER|SUNSHINE_THRESHOLD Sonnenschein-Schwelle WEATHER|TEMPERATURE Lufttemperatur WEATHER|WIND_DIRECTION Windrichtung WEATHER|WIND_DIRECTION_RANGE Windrichtung Schwankungsbreite WEATHER|WIND_SPEED Windgeschwindigkeit WINMATIC|ERROR=MOTOR_TILT_ERROR Fehler Kippantrieb WINMATIC|ERROR=MOTOR_TURN_ERROR Fehler Drehantrieb WINMATIC|LEVEL Kippstellung WINMATIC|LEVEL=LOCKED Fenster verriegelt WINMATIC|MOUNT_SIDE Montageseite WINMATIC|MOUNT_SIDE=LEFT links WINMATIC|MOUNT_SIDE=RIGHT rechts WINMATIC|PULL_FORCE Kraft Kippantrieb beim Schließen WINMATIC|PUSH_FORCE Kraft Kippantrieb beim Öffnen WINMATIC|RELOCK_DELAY Automatisch verriegeln nach Zeit WINMATIC|RELOCK_DELAY=NOT_USED Nicht automatisch verriegeln WINMATIC|SPEED Geschwindigkeit für durch Zentralenbefehl ausgelöste Aktion WINMATIC|STATE_UNCERTAIN=FALSE Fensterzustand bekannt WINMATIC|STATE_UNCERTAIN=TRUE Fensterzustand unbekannt WINMATIC|STOP Anhalten WINMATIC|TILT_MAX maximale Kippweite

SukramJ commented 2 years ago

Super. Hast du dazu auch noch den Link?

AlexaMiller commented 2 years ago

https://homematic-forum.de/forum/viewtopic.php?t=2606#p13534

SukramJ commented 2 years ago
  • der Verschluss LEVEL (Range -0.005 bis 1) wurde als Cover umgesetzt, die ursprünglichen Stati sind nicht mehr auslesbar (ja, Home Assistant bietet hier keine entsprechende Umsetzung) 1: offen 0: geschlossen -0.005: verriegelt

Hierfür habe ich noch keine Lösung (mangels HA Unterstützung). Solltest Du den direkten Zugriff auf LEVEL benötigen, dann kannst Du LEVEL in die unignore Datei eintragen.

  • Verschluss DIRECTION wird mit

    • 1: wird mit "audwärts" übersetzt (ja, incl. Typo, evtl. würde "schließend" hier angebrachter sein)
    • 2: wird mit "abwärts" übersetzt (evtl "öffnend")
    • 0: per default steht dort "nichts"

Sollte behoben sein.

  • Verschluss ERROR ist nicht getestet, es trat (noch) kein Fehler auf, die Werte sollten allerdings sein 0 = NO_ERROR (Standard) 1 = MOTOR_TURN_ERROR 2 = MOTOR_TILT_ERROR

Sollte jetzt stimmen.

  • Akku LEVEL wird als 0-1% Wert dargestellt, hier wäre eine Umrechnung mit *100 wünschenswert. Zusätzlich ist die Maßeinheit auf "#" anstelle von "%" gesetzt.

LEVEL wird jetzt umgerechnet und mit % angezeigt.

AlexaMiller commented 2 years ago

Danke, hört sich wirklich gut an. Bezüglich Zugriff meinerseits (auf LEVEL) - wie in einem anderen Beitrag erwähnt verwenden wir die Integration in unserem System nicht mehr. Wenn Du allerdings eine Liste der Geräte aus meinem System möchtest (kann durchaus sein dass der eine oder andere Exot dabei ist den ihr noch nicht hab), lass es mich bitte wissen. Gerne auch per DM (Daten hast Du ja aus dem Forum). Gerne liefere ich auch Screenshots oder Gerätebeschreibungen.

Liebe Grüße, Alexa

SukramJ commented 2 years ago

Danke für die Rückmeldung und dein Angebot. Schade das Du die Integration nicht mehr verwendest, aber ich kann deine Argumente natürlich auch verstehen. Ich hoffe Du skizzierst irgendwann mal deinen Lösungsansatz.

Die Gerätedefinitionen werden in pydevccu abgelegt. Daniel hat das hier beschrieben. Es gibt in HA eine Service Homematic(IP) Local: Export device definition, der die benötigten Dateien in den Order {ha-config}/hahm/... exportiert, oder natürlich das von Daniel genannte Script.

Am Besten gleich bei pydevccu als PR einstellen. Dann kann ich die Geräte, zumindest statisch, zum Testen verwenden. Das würde mich sehr freuen.

AlexaMiller commented 2 years ago

Unsere Lösung ist sehr auf unser System zugeschnitten und wird mit diesen Anforderungen sicherlich niemals in HACS aufgenommen werden :) Ist pfeilschnell und wir definieren auf Geräte-, Kanal- und Datenpunktbasis ob die Entität erstellt wird. Dazu ist es allerdings nötig eine Zwischenmatrix zu definieren in der die Geräte administriert werden (und bei Sonderwünschen für Spezialbehandlung für - genau-diese-eine-Gerät - auch die Parametrisierung geändert werden kann). Diese Matrix führen wir in PostgreSQL. Die Integration selber ist - logisch - in Python auscodiert. Ging schnell und tut was es soll. Aber wie gesagt - definitiv keine massentaugliche Lösung :) Bezüglich der Geräte - den Service kann ich leider nicht mehr nutzen (wie bereits erwähnt, die debmatic funktioniert mit der Integration weiterhin nicht), das andere Script um pydevccu zu befüllen schau ich mir gerne im Laufe der Woche an. Liebe Grüße, Alexa

SukramJ commented 2 years ago

Keine Eile, magst mir dennoch kurz skizzieren wo das Problem bei deiner debmatic liegt?

AlexaMiller commented 2 years ago

Sorry - leider nein, sonst hätt' ich es (hoffentlich) gelöst. Die Integration hat das letzte Mal mit der Versionsnummer 0.27.1 funktioniert, seitdem bindet es die debmatic zwar ein, findet allerdings nur die Zentraleinheit und keinerlei Geräte mehr. (Die genauer Beschreibung hatten wir - ich glaube im Homematic-Forum) ja damals eh diskutiert und kamen zu keinem Ergebnis. Egal, bei den anderen dürfte es funktionieren und wir haben auch die perfekte Lösung für uns gefunden. (hab mir das Script bereits angesehen und die ersten Geräte erstellt, im Laufe der Woche bekommst die Auswertung :)

SukramJ commented 2 years ago

Die 27.3 hatte Probleme, aber seit dem sollte es wieder stabil laufen, aber egal. Wäre besser gewesen, wenn Du damals ein Issue hier aufgemacht hättest. Ich bin mal gespannt was da so an Geräten von dir kommt. :)

AlexaMiller commented 2 years ago

Ist zwar mittlerweile stark off-topic, aber jetzt hamma den Salat. Mit dem Script konnte ich lediglich die verbleibende CCU3 auslesen, auf den debmatics liefert es lediglich Saving device of type None to: ...\SWDev\pythonscripts\hahm\device_descriptions\None.json
...\SWDev\pythonscripts\hahm\paramset_descriptions\None.json Somit alles was ich vorerst liefern könnte wäre ein HmIP-SWDM und ein HmIP-RC8 (beides net sehr aufregend).

Firewall Ports sind sicherlich nicht das Problem, wir fahren intern alles offen. Any ideas?

AlexaMiller commented 2 years ago

Für dich als Vorab-Info ob sich das überhaupt auszahlt: "HmIP-ASIR" "HmIP-BROLL" "HmIP-BSL" "HmIP-BWTH" "HmIP-CCU3" "HmIP-DBB" "HmIP-DRSI1" "HMIP-eTRV" "HmIP-eTRV-2" "HmIP-FAL230-C10" "HmIP-FDT" "HmIP-FSM" "HmIP-HAP" "HmIP-KRC4" "HmIP-KRCA" "HmIP-MP3P" "HmIP-PCBS" "HmIP-PCBS2" "HmIP-PMFS" "HMIP-PS" "HMIP-PSM" "HmIP-RC8" "HmIP-RCV-50" "HmIP-RFUSB" "HmIP-SCTH230" "HmIP-SFD" "HmIP-SLO" "HmIP-SMI" "HmIP-SMI55" "HmIP-SMO" "HmIP-SMO-A" "HmIP-SPDR" "HmIP-SPI" "HmIP-SRD" "HmIP-SRH" "HmIP-STE2-PCB" "HmIP-STH" "HmIP-STHD" "HmIP-STHO" "HmIP-STHO-A" "HmIP-STV" "HmIP-SWD" "HmIP-SWDM" "HMIP-SWDO" "HmIP-SWDO-I" "HmIP-SWO-B" "HmIP-SWO-PR" "HmIP-SWSD" "HmIPW-DRAP" "HmIPW-DRD3" "HmIPW-DRI32" "HmIPW-DRS8" "HmIPW-FIO6" "HMIP-WRC2" "HmIP-WRC6" "HmIPW-SMI55" "HmIPW-SPI" "HmIPW-STH" "HmIPW-STHD" "HM-RCV-50" "HM-Sec-Win" "RPI-RF-MOD"

SukramJ commented 2 years ago

@danielperna84 ist der Experte für das Script. Im Script werden nur Definitionen und keine Daten ausgelesen. Das sollte eigentlich kein Problem sein. Scheint da irgendwas auf deiner debmatic zu blockieren? Ist ein Neustart möglich?

Wenn ich das richtig sehe fehlen in pydevccu noch die folgenden Geräte: "HmIP-PMFS" "HmIP-RFUSB" "HmIP-STV" "HmIP-SWO-B" "HmIPW-DRD3" "HmIPW-DRS8" "HmIPW-FIO6" "HmIPW-STH" "HmIPW-STHD"

AlexaMiller commented 2 years ago

Eine der debmatics kann restarted werden (ist sogar im Zuge von Wartungsarbeiten für heute abend, spätestens morgen abend geplant), die Hauptmaschine nur sehr ungern da dort seit einigen Wochen Updates laufen und wir immer noch Hoffnung haben dass die eines Tages durchgehen :) Die schlechten Nachrichten - alle interessanten Geräte sind auf der Hauptmaschine. Falls ihr möchtet, wir können gerne auf Signal weiterplaudern - ist nicht ganz so public.

danielperna84 commented 2 years ago

Mit dem Script konnte ich lediglich die verbleibende CCU3 auslesen, auf den debmatics liefert es lediglich Saving device of type None to...

Schau mal nach der Datei device_cache.json, und wenn vorhanden, dann bitte löschen. Die Datei wird beim ersten halbwegs erfolgreichen Zugriff angelegt und mit den Daten befüllt. Weitere Aufrufe holen sich die Daten dann nur noch von dort. Wenn da aber am Anfang was schief gelaufen ist, dann fehlen dort die Daten. Die Datei zu löschen ist also quasi der Reset. 👍

AlexaMiller commented 2 years ago

danke, der Tipp war Gold wert .. bin für heute bereits im Feierabend, steht morgen früh auf der ToDo Liste!