NEWS
Homematic IP Rolladen Aktor ansteuern
-
@odo-iobroker
Beim HMIP-Adapter liegen die shutterLevel-Werte zwischen 0 und 1. 50% sind also 0,5. -
perfekt, das hat geklappt. Wie kann ich die ShutterVariable mit 100 multiplizieren, damit ich die aktuelle Stellung in % habe?
-
@odo-iobroker
Verschiedene Möglichkeiten. Du erstellst einen eigenen Datenpunkt und machst ein Skript dazu, was Änderungen am Wert shutterLevel triggert und den Wert mal 100 in den eigenen Datenpunkt schreibt. Einen Alias nutzen. Vielleicht geht es auch mit der View, kann ich nicht sagen. -
@ofbeqnpolkkl6mby5e13
einfach das richtige Number Widget wählen
-
-
Ich nutze den Homematic RPC Adapter. Mir scheinen ebenfalls Kanäle oder Datenpunkte zu fehlen.
Ich kann z.b. nicht Auslesen, ob der Schalter manuell gedrückt wurde:
Wie komme ich an die fehlenden Datenpunkte?
-
@maxpd sagte in Homematic IP Rolladen Aktor ansteuern:
Ich kann z.b. nicht Auslesen, ob der Schalter manuell gedrückt wurde:
der "Schalter" ist ein Taster, der per Direktverknüpfung die interne Aktortaste aktiviert.
So lange wie kein Funkbefehl an der CCU ankommt, was beibDV ja Sinn der Sache ist, kann die CCU auch nicht iobroker informieren
Wie komme ich an die fehlenden Datenpunkte?
ist weiter unten nichts?
welcher Aktor?
-
@homoran Verstanden.
Aber schade. Ich wollte wissen ob der Rollladen bewusst gedrückt wurde, um andere Regeln die den Rollladen wieder hochfahren würden zu unterbinden.
Aber andere Werte wie Höhe, ob er läuft und in welche Richtung werden ja auch übertragen. Dann kann man ruhig auch den Tastendruck loggen
Es handelt sich um einen HM-LC-Bl1PBU-FM
Nein, es gibt keinen Order 2 oder höher.
-
@maxpd sagte in Homematic IP Rolladen Aktor ansteuern:
Es handelt sich um einen HM-LC-Bl1PBU-FM
das ist KEIN! HmIP Aktor, bitte eigenen Thread aufmachen.
Dann stimmt das gesagte auch nicht.
Bei deinem Aktor gibt es den Taster nach außen gar nicht, dort ist es ein einfacher Kontakt. der Taszer wurde erst wegen solcher Nachfragen bei HmIP mechanisch entkoppelt und dort gilt das gesagte.Bitte beim nächsten Mal in Screenshots nicht das wichtigste abschneiden
-
HI,
ich habe ein kleines Javaskript geschrieben, um zu erkennen, ob ein Rollo manuell (z. B. über die App oder Wandtaster) oder automatisch (z. B. durch ein Skript oder Node-RED ALexa) gefahren wurde. Für jedes Rollo wird dabei eine eigene Variable gesetzt, die für weitere Automatisierungen genutzt werden kann.
Der Code beobachtet mehrere Rollos, prüft den Absender der Änderung (from) und setzt dann die entsprechende manuell-Variable auf true oder false. Zusätzlich wird ein Timeout genutzt, damit die Variable nicht mehrfach getriggert wird, wenn der Status kurz hintereinander aktualisiert wird.
Den Pfad wo ihr dann eure jeweilige Variable erstellt habt, müsst ihr sowie wie die Geräte ID anpassen
const rollos = [ { level: 'GERÄTE_ID_1', manuellVar: 'VARIABLE_1' }, { level: 'GERÄTE_ID_2', manuellVar: 'VARIABLE_2' }, { level: 'GERÄTE_ID_3', manuellVar: 'VARIABLE_3' }, { level: 'GERÄTE_ID_4', manuellVar: 'VARIABLE_4' }, { level: 'GERÄTE_ID_5', manuellVar: 'VARIABLE_5' }, { level: 'GERÄTE_ID_6', manuellVar: 'VARIABLE_6' }, { level: 'GERÄTE_ID_7', manuellVar: 'VARIABLE_7' } ]; const timeoutMap = {}; // Timeouts für jedes Rollo separat rollos.forEach(rollo => { on({ id: rollo.level, change: 'ne' }, dp => { const from = dp.state.from; if (!timeoutMap[rollo.level]) { let manuell = true; // Prüfen ob Änderung aus JavaScript oder Node-RED kam if (from === 'system.adapter.javascript.0' || from === 'system.adapter.node-red.0') { manuell = false; } // Variable setzen setState(rollo.manuellVar, manuell, true); // Timeout starten (20 Sekunden) timeoutMap[rollo.level] = setTimeout(() => { timeoutMap[rollo.level] = null; }, 20000); } }); });