Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus

    This topic has been deleted. Only users with topic management privileges can see it.
    • Elektroniker86
      Elektroniker86 @crycode last edited by

      @crycode
      Ok, geht wieder hatte bei einem abfrage Parser bei Intervall eine 10 drin stehen...

      1 Reply Last reply Reply Quote 1
      • E
        euro @crycode last edited by

        @crycode said in Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus:

        Bei verdrillten Leitungen und der relativ geringen Baudrate darf die Leitung dann auch durchaus etwas länger sein.

        Moin
        tolles Projekt crycode!
        So eine Daikin wird ziemlich wahrscheinlich auch bei uns einziehen, daher komme ich nochmal auf die Kabellänge zurück.
        Beim Einsatz von S/FTP Kabeln, wie lange schätzt du darf man das Kabel denn hier machen?
        Wären 10m oder gar 15m noch realistisch funktional?

        mfg STefan

        crycode 1 Reply Last reply Reply Quote 0
        • crycode
          crycode Developer @euro last edited by

          @euro sagte in Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus:

          Beim Einsatz von S/FTP Kabeln, wie lange schätzt du darf man das Kabel denn hier machen?
          Wären 10m oder gar 15m noch realistisch funktional?

          Auf jeden Fall. Bei verdrillten und geschirmten Adernpaaren sind beim CAN-Bus mit 20 kbit/s bis zu 3,3 km Kabellänge möglich.
          Ich habe den ersten Post mal um ein paar Infos dazu erweitert.

          1 Reply Last reply Reply Quote 0
          • E
            euro last edited by

            perfekt, da sollte ich drunter bleiben 😁

            mein ioB läuft in einem Pi im Docker, durchreichen vom CAN HAT sollte doch genauso gehen wie für enocean stick und jeelink clone funktionieren, oder gibt es sonstige Tips?

            mfg STefan

            crycode 1 Reply Last reply Reply Quote 0
            • crycode
              crycode Developer @euro last edited by

              @euro Das CAN-Interface ist im System eine Netzwerkschnittstelle. Da hast du zwei Möglichkeiten, um das in den Docker-Container zu bekommen:

              Option 1 - Host-Netzwerk im Container verwenden.

              Mit dem Parameter --network=host beim Start des Docker-Containers, nutzt der Container das selbe Netzwerk wie der Host (dein Raspi). Inwiefern das bei dir Sinnvoll ist, musst du selbst entscheiden.

              Option 2 - Datenpakete vom can0 Interface per UDP an den Container leiten.

              Eine Anleitung dazu habe ich hier geschrieben: https://crycode.de/socketcan-ueber-ethernet-mit-cannelloni
              Die Anleitung nutzt zwei getrennte Rechner. Bei dir ist dann der eine Rechner dein Host und der zweite der Container. Hier sollte man noch dazu überlegen, wie man das sinnvoll in den Container einbaut, sodass das auch bei einem Neustart erhalten bleibt.

              1 Reply Last reply Reply Quote 1
              • E
                euro last edited by

                Danke!
                die option2 hab ich weiter oben schon gelesen

                ioBroker läuft schon im Netzwerk Host Mode, alle anderen Container haben ein dediziertes bekommen.
                Könnte dann evtl sogar recht einfach gehen

                crycode 1 Reply Last reply Reply Quote 0
                • crycode
                  crycode Developer @euro last edited by

                  @euro sagte in Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus:

                  ioBroker läuft schon im Netzwerk Host Mode

                  Dann solltest du sogar direkt im Container das can0 Interface zur Verfügung haben. 🙂

                  E 1 Reply Last reply Reply Quote 1
                  • E
                    euro @crycode last edited by

                    hab grad mal mit Daikin telefoniert
                    die neuen E Serien der Altherma die ab ~ April ausgeliefert werden, kommunizieren via modbus
                    d.h. das CAN Modul wird bei mir wohl eh nicht mehr funktionieren

                    lassen wir uns mal überraschen

                    crycode 1 Reply Last reply Reply Quote 1
                    • crycode
                      crycode Developer @euro last edited by

                      @euro Oh, das ist natürlich weniger schön... Aber gut zu wissen, danke für die Info!

                      Vom Modbus habe ich bislang überhaupt keine Ahnung, aber für gibt es zumindest auch einen Adapter: https://github.com/ioBroker/ioBroker.modbus

                      1 Reply Last reply Reply Quote 1
                      • Elektroniker86
                        Elektroniker86 @crycode last edited by

                        @crycode

                        Moin,
                        ich bin nicht so der script pro, deshalb die Frage zu deinem Script ganz oben zum triggern der Abfragen.
                        Kann ich das so bei mir importieren oder muss ich es irgendwie auf meine Installation anpassen?
                        Und ist das Script für ein Wert oder reicht dieses um alle Datenpunkte zu überwachen?

                        Vielen Dank im voraus für deine Rückmeldung!

                        crycode 1 Reply Last reply Reply Quote 0
                        • crycode
                          crycode Developer @Elektroniker86 last edited by

                          @elektroniker86 Das Script kannst du so direkt übernehmen, ohne irgendwas anzupassen, solange der Adapter bei dir als canbus.0 läuft.
                          Das Script erkennt dann automatisch bei allen States unter 680 mit -set am Ende, wenn es eine Änderung gab und triggert 500ms später dem zugehörigen Abfrage-State an. Dadurch bekommst du dann die Rückmeldung für eine Änderungen direkt im ioBroker angezeigt.

                          Elektroniker86 1 Reply Last reply Reply Quote 1
                          • Elektroniker86
                            Elektroniker86 @crycode last edited by

                            @crycode
                            Tip Top genau das wollte ich wissen.
                            DANKE!

                            1 Reply Last reply Reply Quote 0
                            • A
                              andy999 last edited by

                              Hallo Kann mir von euch hier jemand bitte weiter helfen. Meine HPSU übernimmt den State Wert nämlich nicht -

                              Siehe unteren Link bzw. Code:
                              HPSU spricht nicht an

                              var timeout, memoryMODUS, timeout2;
                              
                              
                              on({id: 'canbus.0.180.fa0a8c', change: "lt"}, async function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                if (getState("canbus.0.180.fa0a8c").val == false) {
                                  (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
                                  timeout = setTimeout(async function () {
                                    setState("javascript.0.jsState-SWING-Timer"/*jsState-SWING-Timer*/, 1, true);
                                  }, 140000);
                                }
                              });
                              on({id: 'javascript.0.jsState-SWING-Timer', change: "any"}, async function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                if (getState("javascript.0.jsState-SWING-Timer").val == 1 && getState("canbus.0.180.02").val > 0) {
                                  memoryMODUS = getState("canbus.0.180.fa0112").val;
                                  setStateDelayed("canbus.0.680.fa0112-set"/*Modus setzen*/, 1, 1000, true);
                                  setStateDelayed("canbus.0.680.fa0112-set"/*Modus setzen*/, memoryMODUS, 4000, true);
                                }
                              });
                              on({id: 'javascript.0.jsState-SWING-Timer', change: "any"}, async function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                if (getState("javascript.0.jsState-SWING-Timer").val == 1) {
                                  (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})();
                                  timeout2 = setTimeout(async function () {
                                    setState("javascript.0.jsState-SWING-Timer"/*jsState-SWING-Timer*/, 0, true);
                                  }, 35000);
                                }
                              });
                              
                              
                              crycode 1 Reply Last reply Reply Quote 0
                              • crycode
                                crycode Developer @andy999 last edited by

                                @andy999 Wird denn von deinem Script der Wert von canbus.0.680.fa0112-set gesetzt, wenn du es im Admin unter Objekte beobachtest? Wenn ja, wäre die Frage ob mit ack: false oder ack: true. Um das genau zu sehen kannst du mal folgendes in deinem Script hinzufügen. Das erstellt bei jeder Änderung des States einen Logeintrag:

                                on({ id: 'canbus.0.680.fa0112-set', change: 'any' }, (obj) => {
                                  log(`${obj.id} changed => val: ${obj.state.val} ack: ${obj.state.ack}`);
                                });
                                

                                Im Idealfall solltest du damit immer zwei Logeinträge kurz hintereinander sehen. Einen mit ack: false (von deiner Aktion) und dann einen mit ack: true (Bestätigung vom Adapter).

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  andy999 @crycode last edited by andy999

                                  @crycode Hi, besten Dank für die rasche Antwort, habe unter den Objekten den Wert händisch auf 1 gesetzt, und der wurde tadellos übernommen, auch in der HPSU selber. Hab folgendes im LOG:

                                  12:40:02.144	info	javascript.0 (1422) script.js.HPSU-Test.SWING_-_java: canbus.0.680.fa0112-set changed => val: 1 ack: false
                                  12:40:02.853	info	javascript.0 (1422) script.js.HPSU-Test.SWING_-_java: canbus.0.680.fa0112-set changed => val: 1 ack: true
                                  

                                  und wieder zurück auf 3 (heizen) auch ohne Probleme:

                                  12:40:16.756	info	javascript.0 (1422) script.js.HPSU-Test.SWING_-_java: canbus.0.680.fa0112-set changed => val: 3 ack: false
                                  12:40:17.503	info	javascript.0 (1422) script.js.HPSU-Test.SWING_-_java: canbus.0.680.fa0112-set changed => val: 3 ack: true
                                  

                                  Es hat mir aber keine ruhe gelassen, deswegen hab ich danach über den Trigger -Zeitplan (alle 10s) den Block Steuere UND Schreibe 1:1 (aktualisieren funktionierte nicht) übernommen und mit dem wurde der Wert in der HPSU tatsächlich übernommen.

                                  Also jetzt verstehe ich nix mehr, wie im Link schon beschrieben werden im Trigger-Falls bestimmte Objekte bzw. Werte übernommen und andere leider nicht? Was mache ich hier falsch?

                                  P.S. arbeite bevorzugter weise mit Blockly

                                  crycode 1 Reply Last reply Reply Quote 0
                                  • Elektroniker86
                                    Elektroniker86 last edited by

                                    Guten Abend,

                                    da es jetzt wieder viele Sonnenstunden gibt habe ich mir ein kleines Blockly gebaut, dass mir bei vollem PV Speicher und Überschuss die Smart Grid Eingänge schaltet um den WWSpeicher mit einer höheren Temperatur zu laden.
                                    Jetzt wollte ich hier mal ein paar Meinungen zu meinem Vorhaben hören und ob das Blockly so passt oder ob es Verbesserungsvorschläge von euch gibt?

                                    Hier das Blockly und die Eckdaten:

                                    Smart Grid Tabelle.jpg

                                    Smart Grid Einstellungen.jpg

                                    Screenshot 2022-03-21 230823.jpg

                                    Bin gespannnt auf eure Meinungen

                                    C crycode 2 Replies Last reply Reply Quote 0
                                    • C
                                      cb187 @Elektroniker86 last edited by

                                      @elektroniker86
                                      Hi mir wäre es neu das du über den Adapter die Relaisausgänge schalten kannst.Ich glaube eher nicht.

                                      Elektroniker86 1 Reply Last reply Reply Quote 0
                                      • crycode
                                        crycode Developer @andy999 last edited by

                                        @andy999 sagte in Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus:

                                        Es hat mir aber keine ruhe gelassen, deswegen hab ich danach über den Trigger -Zeitplan (alle 10s) den Block Steuere UND Schreibe 1:1 (aktualisieren funktionierte nicht) übernommen und mit dem wurde der Wert in der HPSU tatsächlich übernommen.
                                        Also jetzt verstehe ich nix mehr, wie im Link schon beschrieben werden im Trigger-Falls bestimmte Objekte bzw. Werte übernommen und andere leider nicht? Was mache ich hier falsch?

                                        Wenn du willst, dass ein Adapter auf eine Änderung von dir reagiert, dann musst du immer "steuere" nehmen. Bei "steuere" wird das ack-Flag auf false gesetzt, was einem Befehl entspricht und woraufhin ein Adapter reagiert und nach seiner Aktion als Bestätigung ack auf true setzt.
                                        Wenn du hingegen "aktualisiere" nimmst, dann wird ack gleich auf true gesetzt. Damit legst du dann nur den Wert fest, aber löst keine Steuerung aus, da (alle) Adapter nur auf Änderungen mit ack: false reagieren.

                                        A 1 Reply Last reply Reply Quote 0
                                        • crycode
                                          crycode Developer @Elektroniker86 last edited by

                                          @elektroniker86 Wie sehen denn die EVG und SG Eingänge aus? Ich würde vermuten, dass das Hardwareeingänge sind, die du dann extern beschalten müsstest.

                                          @cb187 sagte in Rotex HPSU / Daikin Altherma Wärmepumpe über ioBroker.canbus:

                                          Hi mir wäre es neu das du über den Adapter die Relaisausgänge schalten kannst.Ich glaube eher nicht.

                                          Grundsätzlich sollte sich über den Adapter alles schalten lassen, was du auch über die originale Steuerung schalten kannst. Ggf. müsste man nur entsprechende Parser hinzufügen.

                                          C 1 Reply Last reply Reply Quote 0
                                          • C
                                            cb187 @crycode last edited by

                                            @crycode ja das sind potentialfreie Relaiseingänge.Dürfte nicht anders funktionieren.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            541
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            canbus canbus adapter rotex hpsu
                                            25
                                            498
                                            67012
                                            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