Posts by apas_csc

    Wenn ich hier von DynDNS lese, habe ich die Befürchtung, dass Benutzer einfach den Port 80 öffnen und ihre Zentralen ins Internet hängen. Ich rate davon ab.

    In den FAQ (https://community.livisi.de/paq-de/) steht unter "Wie funktioniert danach der Fernzugriff?" der korrekte Hinweis auf ein VPN.

    Wer sich unsicher ist, was das bedeutet oder wie das geht, sollte es m. E. lieber lassen.


    PS: "den Zugang über meine Fritzbox eingerichtet" kann natürlich auch heißen, dass VPN der Fritz.Box aktiviert zu haben. Bitte nur Finger weg von Portfreigaben!

    Warum es mit dem Passwort nicht geht, kann ich Dir leider auch nicht sagen. Den Port 80 zu öffnen oder überhaupt die Zentrale direkt im Internet freizugeben, ist eine ganz schlechte Idee. Unabhängig von der Verschlüsselung ist die Gefahr einfach zu groß, dass diese alte Softwarebasis (Windows CE, wenn ich mich nicht irre) voller Schwachstellen steckt.


    Die IP-Adressen der Internet-Provider und üblichen Ports werden praktisch permanent gescannt und mit automatisierten Angriffen ausprobiert, das kann in Minuten schiefgehen.


    Die Fritz-Boxen können ein VPN aufmachen. Das ist die wesentliche bessere Alternative. Du verbindest Dich auf sichere Art und Weise mit deinem Heimnetzwerk und kannst dann die Zentrale direkt ansprechen.


    (Sehr gute Passworte sind natürlich auch beim VPN wichtig.)

    Jetzt noch der Code der besser funktionierenden Version.


    Items:

    Code: livisi-motion.items
    Group BBewegungSensorGroup "Bewegungssensor B" <qualityofservice> { homekit="MotionSensor" }
      Number BBewegungSensor_Motion "Bewegung B (Zähler)" (BBewegungSensorGroup) {channel="livisismarthome:WMD:abcd:MotionSensorB:motionCount" }
      Switch BBewegungSensor_State "Bewegung B" (BBewegungSensorGroup) {expire="5m,state=OFF",
              homekit="MotionDetectedState" }
      Switch BBewegungSensor_BatteryLow "Bewegung B Batterie niedrig" (BBewegungSensorGroup) {channel="livisismarthome:WMD:abcd:MotionSensorB:batteryLow",
              homekit="BatteryLowStatus" }

    Es gibt jetzt, neben dem optionalen Batteriestatus, noch ein Zähler-Item, was direkt mit dem Livisi-WMD-Thing verbunden ist und ein Switch-Item, das über eine Regel für HomeKit gesteuert wird.


    Regel:

    Die Regel reagiert auf Zustandsänderungen des Zähleritems und stellt dann das Zustandsitem auf "ON". Das Zustandsitem hat eine "expire"-Konfiguration, die nach fünf Minuten den Zustand wieder auf "OFF" stellt.

    Ich hatte was ähnliches Mal mit den FB-Knöpfen gemacht. dort konnte man den Zähler aus OH herraus setzen. Habe dann bei änderung des Zählers und Stand <> 0 ein Switch Item geschaltet

    Das ist auch interessant, ich werde es bei Gelegenheit mal probieren. Damit könnte man auch die Bewegungs"Intensität" erkennen: Alle z. B. 5 Minuten liest man den Zähler und setzt ihn zurück. Abhängig vom Stand können dann Aktionen durchgeführt werden, aber nicht, wenn z. B. nur eine Bewegung (Katze, oder Topfpflanze kippt um) erkannt wurden. So braucht man sich den letzten Zählerstand nicht merken und hat kein Problem, wenn er überläuft und wieder bei 0 beginnt.

    Also ich habe es jetzt erst mal so gelöst:


    Code
    Group BueroBewegungSensorGroup "Bewegungssensor B" <qualityofservice> { homekit="MotionSensor" }
      Switch BewegungSensor_State "Bewegung B" (BewegungSensorGroup) {channel="livisismarthome:WMD:abcd:MotionSensorB:motionCount" [profile="transform:JS", sourceFormat="%s", function="| 'ON'"], 
              expire="1m,command=OFF",
              homekit="MotionDetectedState" }
      Switch BewegungSensor_BatteryLow "Bewegung B Batterie niedrig" (BewegungSensorGroup) {channel="livisismarthome:WMD:abcd:MotionSensorB:batteryLow",
              homekit="BatteryLowStatus" }

    Die Gruppe ist notwendig für HomeKit. Das Switch-Item "BewegungsSensor_State" wird, unabhängig vom konkreten Zählerstand aus dem Channel, mit Hilfe der JavaScript-Transformation auf "ON" gesetzt. Über expire wird es nach einer Minute wieder auf OFF gesetzt.

    Das zweite Switch-Item ist optional und zeigt HomeKit den Batteriezustand an.


    Die eine Minute habe ich gewählt, weil HomeKit auch Regeln bei Beendigung der Bewegung triggern kann. Eventuell setze ich diese Zeit auch noch höher, z. B. auf fünf Minuten, damit Regeln nicht vorzeitig ausgelöst werden.


    Die Anzeige in HomeKit ist unspektakulär:

    Ich mache das in meinen Regeln für Thermostate auch so. Zeige doch mal einen Screenshot.


    Update: Da ich meine Regeln in JavaScript schreibe, habe ich es jetzt auch mal über die Benutzeroberfläche probiert. So funktioniert das Einstellen des Thermostat:


    Code
    [...]
    actions:
      - inputs: {}
        id: "1"
        configuration:
          command: "10"
          itemName: HeizungA_SetTemperature
        type: core.ItemCommandAction


    Die Temperatur wird auf 10°C gestellt.


    Wenn ich statt dessen "update an item state" auswähle, passiert genau das von Dir beschriebene: Das Item ändert sich (auch in HomeKit), aber der Thermostat bleibt unverändert. Nur ein Command wird auch an das "Thing" gesendet, eine Änderung des Status wirkt sich nur auf das Item aus.

    Hallo,

    Was ist die beste Möglichkeit, einen Bewegungsmelder in HomeKit einzubinden? Das WMD thing liefert ja einen Zähler, während Homekit ein Switch- oder Contact-Item für MotionDetectedState möchte.


    Vielleicht hat das schon jemand gemacht und kann mir ein bisschen Versuchszeit ersparen?


    Eine offensichtliche Möglichkeit wäre eine Regel, die auf State Updates des Zählers achtet und ein Switch-Item aktiviert. Dem Switch-Item würde ich Expire-Metadata mitgeben, so dass es sich nach kurzer Zeit (1 Sekunde?) wieder deaktiviert.


    Eventuell gibt es noch eine bessere Möglichkeit über Transformationen?


    Und wie lange möchte HomeKit die Bewegungsmeldung sehen, bevor der Switch wieder auf OFF geht?

    Ist der Grundwert 6°C, also aus? Ich kenne die Diagrammdarstellung auch so, wenn es keinen Schaltzeitpunkt gibt.


    Ich frage mich, was da überhaupt passieren soll:


    "Bei einer Zieltemperatur von 6 Grad und einer Begrenzung des Temperaturheizbereiches auf 13 Grad, heizt das RST dennoch wesentlich höher!"


    Die Temperatur schwankt zwischen 17 und 17,5°C.


    Ich sehe da kein Heizen, außer der Dachboden ist ungedämmt oder die Fenster sind offen und draußen ist es deutlich kälter. Soll die Heizung kühlen, um auf 6 oder 7,5°C zu kommen?

    Ich habe es gerade mal ausprobiert: bei einem falschen Passwort kommt hier gar nicht erst die Ladeanimation. Das ist gut, denn wenn Du das Passwort nicht richtig hättest, müsstest Du einen Reset der Zentrale machen.


    Generelles bei Problemen mit Webanwendungen: Sind irgendwelche Adblocker oder sonstige Erweiterungen im Browser aktiv: deaktivieren/in einem neuen Benutzerprofil probieren. Es lohnt sich auch mal, in einem privaten Modus die Anmeldung zu versuchen. Auch das löschen des Cache (History) kann helfen. Greifst Du über IP-Adresse oder Name auf die Zentrale zu? Einfach mal das jeweils andere versuchen.

    OpenHAB möchte Java 11. Die Fehlermeldung deutet darauf hin, dass Du ein neueres Java, z. B. 17 verwendest. Entweder Du benutzt 11 oder Du musst entsprechend mit "add-opens" Parametern arbeiten, bis alle diese Meldungen weg sind. Ich würde eher Java 11 installieren und warten, bis openHAB eine neuere Java-Version unterstützt.

    (Ich sehe gerade, ich bin hier ein bisschen off-topic. Ich hatte nach Thermostat und HomeKit gesucht und bin hier gelandet. Mit Alexa hat meine Konfiguration nichts zu tun.)


    Mit den Angaben von Ralph hat es bei mir nicht geklappt. Falls es anderen hilft, hier ist meine funktionierende Konfiguration (noch mit Innogy-Binding, aber die Homekit-Sachen sollten mit Livisi-Binding identisch sein):


    Code: innogy.things
    Group HeizungBGroup "Heizung B" <radiator> {homekit="Thermostat"}
      Number   HeizungBSetTemperature  "Solltemperatur B"       (HeizungBGroup)  {channel="innogysmarthome:RST:SMARTHOME10:HeatB:set_temperature", homekit="TargetTemperature" [minValue=6, maxValue=25, step=0.5]}
      Number   HeizungBTemperature     "Aktuelle Temperatur B"  (HeizungBGroup)  {channel="innogysmarthome:RST:SMARTHOME10:HeatB:temperature", homekit="CurrentTemperature" [minValue=-10, maxValue=50, step=0.1]}
      String   HeizungBCurrentMode     "Modus B"                (HeizungBGroup)  {homekit="CurrentHeatingCoolingMode" [OFF="OFF", HEAT="HEAT"]}
      String   HeizungBTargetMode      "Modus B"                (HeizungBGroup)  {homekit="TargetHeatingCoolingMode" [OFF="OFF", HEAT="HEAT"]}

    Dazu noch folgende Regeln, die den Status (OFF, HEAT) entsprechend mit der eingestellten Temperatur synchronisieren:

    Die Regeln sind ziemlich umfangreich, wenn man sie für jeden Thermostat wiederholen muss. Vielleicht gibt es da noch eine bessere Lösung. So funktioniert jedenfalls der "Schalter" in HomeKit und folgt entweder der Temperatureinstellung oder man kann die Heizung direkt ein- und ausschalten.