Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Hm IP Thermostat u. Türkontakt über Skript

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    UNSOLVED Hm IP Thermostat u. Türkontakt über Skript

    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      RalfEngelberth last edited by RalfEngelberth

      Hallo, ich habe eine Problem mit der Homematic IP und dem Ansteuer über IoBroker.

      Ich habe folgende Zusammenstellung:
      IoBroker auf einem Raspberry 3
      ELV Charly mit Raspberry 4B, eq3 und CCU3. Software RaspberryMatic

      An der CCU3 habe ich 3 Thermostat HmIP-eTRV-B und 3 Türkontakte HmIP-SWDM aus dem Starter Set HmIP-SK9 angemeldet.
      In IoBroker habe ich die Adapter hm-rega.0 und hm-rpc.0 instaliert.
      Mit einem Skript aus IoBroker möchte ich, wenn das Fenster geöffnet wir, dass das Thermostat auf Handbetrieb schaltet und eine Themperatur von 19° am Thermostat eingestellt wird.
      Wird das Fenster wieder geschlossen soll das Thermostat wieder auf Automatik umschalten.
      Das habe ich realisiert mit folgendem Skript.

      skript.png ![Bild Text](Bild Link)

      Hier auch als Java:

      `on({id: "hm-rpc.0.001558A99D5DC5.1.STATE"/*HmIP-SWDM 001558A99D5DC5:1.STATE*/, change: "any"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("hm-rpc.0.001558A99D5DC5.1.STATE").val == true) {
          setStateDelayed("hm-rpc.0.002018A99D396D.1.CONTROL_MODE"/*HmIP-eTRV-B 002018A99D396D:1.CONTROL_MODE*/, 1, 30000, false);
          setStateDelayed("hm-rpc.0.002018A99D396D.1.SET_POINT_MODE"/*HmIP-eTRV-B 002018A99D396D:1.SET_POINT_MODE*/, 1, 30000, false);
          setStateDelayed("hm-rpc.0.002018A99D396D.1.SET_POINT_TEMPERATURE"/*HmIP-eTRV-B 002018A99D396D:1.SET_POINT_TEMPERATURE*/, 19, 30000, false);
          // Wenn Fenster Auf, Thermostat nach 30 sec. auf Handbetrieb und Temperatur aus 9 C°
        } else if (getState("hm-rpc.0.001558A99D5DC5.1.STATE").val == false) {
          setStateDelayed("hm-rpc.0.002018A99D396D.1.CONTROL_MODE"/*HmIP-eTRV-B 002018A99D396D:1.CONTROL_MODE*/, 0, 30000, false);
          setStateDelayed("hm-rpc.0.002018A99D396D.1.SET_POINT_MODE"/*HmIP-eTRV-B 002018A99D396D:1.SET_POINT_MODE*/, 0, 30000, false);
          // Wenn Fenster Zu, Thermostat wieder auf Automatik
        }
      });
      
      

      Das funktioniert auf manchmal.
      Aber nicht immer.
      Ich bekommen auch auf der CCU3 manchmal eine Fehlermeldung, dass die Gerätekommunikation gestört ist.
      Was mache ich hier falsch?

      Rababersaft Jey Cee UweRLP 3 Replies Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer last edited by

        @RalfEngelberth bitte code und logs in Code tags Packen. Es ist super schlecht zu lesen und unübersichtlich vorallem auf Mobilen Geräten.

        Bitte hol das nach, dafür gibt es die Bearbeiten funktion rechts unten am Beitrag im 3 Punkte Menü.

        1 Reply Last reply Reply Quote 0
        • Rababersaft
          Rababersaft @RalfEngelberth last edited by Rababersaft

          @RalfEngelberth
          Hi, eigentlich würde ich sagen das dein Skript so funktionieren sollte...
          Nur: beim zurückschalten in den Auto Betrieb, veränderst du nicht den Temperatursollwert. Dieser bleibt dann (so ist es bei mir) bei 19°C...

          Mit den Verbindungsabbrüchen, kann ich nichts zu sagen, das könnte vieles sein...
          Vllt könntest du die Verbindung triggern und die Routine (if , then ...) nochmal durchlaufen lassen wenn die Verbindung wieder auf true schaltet.

          Z.b.: Ist (Datenpunkt Verbindung) größter als vorher, dann (alles was unter deinem jetzigen Trigger ist) ausführen...

          
          `on({id: "hm-rpc.0.Datenpunkt_der_Verbindung"/*Datenpunkt zur Homematic*/, change: "gt"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            if (getState("hm-rpc.0.001558A99D5DC5.1.STATE").val == true) {
              setStateDelayed("hm-rpc.0.002018A99D396D.1.CONTROL_MODE"/*HmIP-eTRV-B 002018A99D396D:1.CONTROL_MODE*/, 1, 30000, false);
              setStateDelayed("hm-rpc.0.002018A99D396D.1.SET_POINT_MODE"/*HmIP-eTRV-B 002018A99D396D:1.SET_POINT_MODE*/, 1, 30000, false);
              setStateDelayed("hm-rpc.0.002018A99D396D.1.SET_POINT_TEMPERATURE"/*HmIP-eTRV-B 002018A99D396D:1.SET_POINT_TEMPERATURE*/, 19, 30000, false);
              // Wenn Fenster Auf, Thermostat nach 30 sec. auf Handbetrieb und Temperatur aus 9 C°
            } else if (getState("hm-rpc.0.001558A99D5DC5.1.STATE").val == false) {
              setStateDelayed("hm-rpc.0.002018A99D396D.1.CONTROL_MODE"/*HmIP-eTRV-B 002018A99D396D:1.CONTROL_MODE*/, 0, 30000, false);
              setStateDelayed("hm-rpc.0.002018A99D396D.1.SET_POINT_MODE"/*HmIP-eTRV-B 002018A99D396D:1.SET_POINT_MODE*/, 0, 30000, false);
              // Wenn Fenster Zu, Thermostat wieder auf Automatik
              setStateDelayed("hm-rpc.0.002018A99D396D.1.SET_POINT_TEMPERATURE"/*HmIP-eTRV-B 002018A99D396D:1.SET_POINT_TEMPERATURE*/, 22, 30000, false); 
              /* Hier habe ich die Solltemperatur mit eingefügt */
            }
          });
          

          😉

          R 1 Reply Last reply Reply Quote 0
          • Jey Cee
            Jey Cee Developer @RalfEngelberth last edited by

            @RalfEngelberth danke.

            1 Reply Last reply Reply Quote 0
            • R
              RalfEngelberth @Rababersaft last edited by

              @Rababersaft
              Beim zurückschalten auf Auto Betrieb wird doch kein Temperaturwert benötigt.
              Hier werden doch die Voreingestellten aufgerufen.
              Ich habe gerade einen Test am laufen
              ![Bild Text](Bild Link)skript1.png

              Hier versuche ich es mal mit den vorgegebenen Werten. Also nur Umschaltung Hand / Auto

              R 1 Reply Last reply Reply Quote 0
              • R
                RalfEngelberth @RalfEngelberth last edited by

                @RalfEngelberth sagte in Hm IP Thermostat u. Türkontakt über Skript:

                @Rababersaft
                Beim zurückschalten auf Auto Betrieb wird doch kein Temperaturwert benötigt.
                Hier werden doch die Voreingestellten aufgerufen.
                Ich habe gerade einen Test am laufen
                ![Bild Text](Bild Link)skript1.png

                Hier versuche ich es mal mit den vorgegebenen Werten. Also nur Umschaltung Hand / Auto

                Hab eben damit wieder eine Fehlermeldung bekommen.
                Hier der Error LOG

                hm-rpc.0	2019-10-20 22:15:06.886	error	(3047) Error: XML-RPC fault: Generic error (TIMEOUT)
                hm-rpc.0	2019-10-20 22:15:06.885	error	(3047) xmlrpc -> setValue ["1","CONTROL_MODE",1] INTEGER
                

                In der CCU3 steht Gerätekommunikation gestört

                1 Reply Last reply Reply Quote 0
                • UweRLP
                  UweRLP @RalfEngelberth last edited by

                  @RalfEngelberth sagte in Hm IP Thermostat u. Türkontakt über Skript:

                  Das habe ich realisiert mit folgendem Skript.

                  skript.png ![Bild Text](Bild Link)

                  Wenn ich das richtig interpretiere:

                  Immer wenn der Fensterkontakt seine Werte aktuallisiert (nicht nur bei ändern) sendet die CCU an den Thermostat, erzeugt unnötige viel Funkverkehr. Ich würde als erstes den DutyCycle prüfen ob der nicht überschritten ist.
                  Ich finde es fragwürdig mit einer externen Software eine Funktion nach zu bauen die über eine Direktverknüpfung der beteiligten Sensoren alleine erledigt werden kann.

                  Röstkartoffel 1 Reply Last reply Reply Quote 0
                  • R
                    RalfEngelberth last edited by

                    Ob ich die Änderung beim "Aktualisieren" oder bei "Änderung" abfrage bringt die Selbe Fehlermeldung.
                    Die letzte Fehlermeldung wurde aber ausgelöst, ohne dass der Fensterkontakt betätigt wurde.

                    Den DutyCycle habe ich im hm-rega.0 aktiviert.
                    Der Steht bei allen Geräten auf false.
                    Müsste hier nicht ein Prozentsatz stehen.
                    Was kann ich damit auswerten?

                    In der CCU3 ist DutyCycle auch aktiviert.

                    UweRLP 1 Reply Last reply Reply Quote 0
                    • UweRLP
                      UweRLP @RalfEngelberth last edited by

                      @RalfEngelberth kontrollier den besser in der CCU direkt.
                      Du bzw. die CCU und Sensoren/Aktoren dürfen nicht beliebig oft/lange funken, es gibt gesetzliche Einschränkungen. Vielleicht informierst du dich mal unter https://homematic-forum.de/forum/, da gibt es einige wichtige Threads zu.

                      1 Reply Last reply Reply Quote 0
                      • R
                        RalfEngelberth last edited by

                        Hab hier auch noch was gefunden
                        Link Text

                        Hier wird der Duty Cycle erklärt.

                        Zitat:
                        Um gesetzlichen Vorgaben zu genügen, darf die CCU höchstens 1 % pro Stunde senden – also 36 Sekunden. Wird dieser Wert überschritten, gibt es üble Kommunikationsstörungen.

                        Sendet den mein Skrip zu oft?
                        Er sendet doch nur z.B. bei Änderung. Oder?

                        UweRLP 2 Replies Last reply Reply Quote 0
                        • UweRLP
                          UweRLP @RalfEngelberth last edited by

                          @RalfEngelberth wenn dein Blockly noch so ist wie im ersten Post dann bei jeder aktuallisierung auch wenn sich nichts geändert hat, dann gehts los und du sendest ohne Grund und die Zentrale quittiert...
                          Das treibt dann den DutyCycle hoch...

                          1 Reply Last reply Reply Quote 0
                          • UweRLP
                            UweRLP @RalfEngelberth last edited by

                            @RalfEngelberth Im Gegensatz zur Aussage deiner verlinkten Seite ist der DutyCycle sehr wohl im WebUI der CCU direkt abzulesen, allerdings erst seit kurzem in neuerer Firmware der CCU.

                            1 Reply Last reply Reply Quote 0
                            • Röstkartoffel
                              Röstkartoffel @UweRLP last edited by Röstkartoffel

                              @UweRLP sagte in Hm IP Thermostat u. Türkontakt über Skript:

                              Ich finde es fragwürdig mit einer externen Software eine Funktion nach zu bauen die über eine Direktverknüpfung der beteiligten Sensoren alleine erledigt werden kann.

                              Richtig.
                              Einfach eine Direktverknüpfung zwischen beiden Partner anlegen, den gewünschten Wert bei "Fenster offen" in der CCU Web-Gui eintragen, speichern und fertig.
                              Fenster auf zu am Thermostaten.png

                              UweRLP 1 Reply Last reply Reply Quote 0
                              • UweRLP
                                UweRLP @Röstkartoffel last edited by

                                @Röstkartoffel sagte in Hm IP Thermostat u. Türkontakt über Skript:

                                Einfach eine Direktverknüpfung zwischen beiden Partner anlegen, den gewünschten Wert bei "Fenster offen" in der CCU Web-Gui eintragen, speichern und fertig.

                                Zu erwähnen wäre noch, dass bei IP Geräten besser eine Heizungsgruppe angelegt wird, die Direktverknüpfung erfolgt dann automatisch.

                                1 Reply Last reply Reply Quote 0
                                • R
                                  RalfEngelberth last edited by RalfEngelberth

                                  Ich habe die Direktverknüpfung angelegt. Je Fensterkontakt und Raum.

                                  Probiere ich mal aus.

                                  dslraser 1 Reply Last reply Reply Quote 0
                                  • dslraser
                                    dslraser Forum Testing Most Active @RalfEngelberth last edited by dslraser

                                    @RalfEngelberth
                                    Ich wollt neulich schon antworten und die Gruppen empfehlen, habe es dann aber vergessen.
                                    Wenn Du Heizgruppen in der Raspberrymatik angelegt hast bekommst Du die auch in ioBroker. Dann einfach eine zusätzliche rpc Instanz mit Virtual Device anlegen, da sind dann die Gruppen drinn. Mache ich schon eine ganze Weile so. Für Dein Vorhaben brauchst Du dann gar kein Script. Ausserdem arbeiten die Geräte dann auch ohne CCU/Raspberrymatic/ioBroker, auch wenn die alle mal ausfallen weiter.
                                    Wenn schon ein Script/Blockly, dann den Trigger auf wurde geändert stellen.

                                    Bildschirmfoto 2019-10-21 um 21.32.18.png

                                    Bildschirmfoto 2019-10-21 um 21.32.44.png

                                    In den Gruppen ist auch alles zu sehen was Du brauchst.

                                    Bildschirmfoto 2019-10-21 um 21.34.22.png

                                    R 1 Reply Last reply Reply Quote 1
                                    • R
                                      RalfEngelberth @dslraser last edited by

                                      @dslraser
                                      Danke für den Tipp.
                                      Ich habe mir eine zusätzliche rpc Instanz angelegt. (hm-rpc.1)
                                      Diesen finde ich aber nicht unter Objekte.
                                      In der Instanz habe ich bei Port den 2010 eingetragen.
                                      Danach war alles Grün.

                                      Was mache ich falsch?

                                      dslraser 1 Reply Last reply Reply Quote 0
                                      • dslraser
                                        dslraser Forum Testing Most Active @RalfEngelberth last edited by

                                        @RalfEngelberth
                                        hast Du mein Bild oben im Post gesehen ? Habe ich nachträglich eingefügt. Bei mir ist es rpc2 (die Nummer spielt aber keine Rolle) Da sind die Einstellungen und der Port zu sehen. Der Port 2010 ist nicht für Virrual Devices.

                                        R 1 Reply Last reply Reply Quote 0
                                        • R
                                          RalfEngelberth @dslraser last edited by

                                          @dslraser
                                          Ja habe ich gesehen.
                                          Habe jetzt den 9292 eingetragen.
                                          Bleibt aber Gelb und kein Objekt angelegt

                                          dslraser 1 Reply Last reply Reply Quote 0
                                          • dslraser
                                            dslraser Forum Testing Most Active @RalfEngelberth last edited by

                                            @RalfEngelberth
                                            Stelle doch mal Bilder von Deinen Einstellungen von rega und allen Instanzen von rpc (und auch Zusatzeinstellungen von rpc) hier rein.
                                            Wie ist die Raspberrymatic eingestellt-Firewall - Einstellungen ?
                                            Welche internen IP haben Raspberrymatic und ioBroker bei Dir ? Wo läuft ioBroker drauf ? (welches System)

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            420
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly heating
                                            6
                                            25
                                            1762
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo