Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. [Projekt] ETA Heizung

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    365

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

[Projekt] ETA Heizung

Scheduled Pinned Locked Moved Entwicklung
88 Posts 30 Posters 21.0k Views 22 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C catnipper

    Hallo Leute, Sorry für mein nicht vorhandensein die letzten Monate.

    Leider muss ich Euch sagen dass der ETA Adapter von meiner Seite nicht mehr weiterentwickelt wird - ich habe mir daran die Zähne ausgebissen das auf einer Synology stabil an's laufen zu bekommen. Auch nach vielen Tagen des Probierens hat es immer nur auf einer ordentlichen Hardware richtig funktioniert. Ich nehme an das hat etwas mit der asynchronen Verarbeitung zu tun, konnte es aber mangels Erfahrung sowohl mit NodeJS noch der Entwicklung von Adaptern in ioBroker leider nie richtig in den Griff bekommen.

    Ich empfehle deshalb dringend als Alternative nicht den Adapter sondern ein JS zu verwenden welches ich bei mir seit längerer Zeit ohne jegliche Probleme verwende. Ihr müsst dazu lediglich einmal die URI's mit eurem ETA Kessel abgleichen und die optionalen CCU Variablen löschen/anpassen (ich persönlich will immer den aktuellsten Wert auch in meinem HM PocketControl haben, nicht nur ioBroker).

    Das Skript findet Ihr im README des GitHub Projekts des Adapters.

    Einzigster Unterschied zum Adapter ist dass Ihr die ETA Variablen selbst definieren müsst - das ist aber auch nicht unbedingt ein Nachteil da man wohl nur selten alle Sensorwerte wirklich auslesen und Speichern möchte.

    Ich hoffe Ihr habt Verständnis und kommt auch mit der JS Variante zurecht!

    Viel Erfolg

    kmuenkeK Offline
    kmuenkeK Offline
    kmuenke
    wrote on last edited by kmuenke
    #36

    @catnipper Hallo, ich habe dein Skript versucht zu verstehen IP ist klar aber wo soll man den den Datenpunkt setzten damit er in den iobroker geschrieben wird ? In diesem Fall die ersten Zeilen hm-rega.0.1810 und hm-rega.0.1811 sind das die Datenpunkte dann ?

    var etaVars = [
    	 ["/120/10251/0/0/12242",		"eta.puffer.oben",				true, false, "Puffer oben",						"number",	"°C",		"value.temperature",    "hm-rega.0.1810"]
    	,["/120/10251/0/0/12244",		"eta.puffer.unten",				true, false, "Puffer unten",					"number",	"°C",		"value.temperature",    "hm-rega.0.1811"]
    

    Oder anders ich würde gerne die Werte im ioBroker unter 0_userdata.0.ETA_SH20 schreiben. Für ein kleines Beispiel wäre ich sehr dankbar.

    Danke schon mal.

    C 1 Reply Last reply
    0
    • kmuenkeK kmuenke

      @catnipper Hallo, ich habe dein Skript versucht zu verstehen IP ist klar aber wo soll man den den Datenpunkt setzten damit er in den iobroker geschrieben wird ? In diesem Fall die ersten Zeilen hm-rega.0.1810 und hm-rega.0.1811 sind das die Datenpunkte dann ?

      var etaVars = [
      	 ["/120/10251/0/0/12242",		"eta.puffer.oben",				true, false, "Puffer oben",						"number",	"°C",		"value.temperature",    "hm-rega.0.1810"]
      	,["/120/10251/0/0/12244",		"eta.puffer.unten",				true, false, "Puffer unten",					"number",	"°C",		"value.temperature",    "hm-rega.0.1811"]
      

      Oder anders ich würde gerne die Werte im ioBroker unter 0_userdata.0.ETA_SH20 schreiben. Für ein kleines Beispiel wäre ich sehr dankbar.

      Danke schon mal.

      C Offline
      C Offline
      catnipper
      wrote on last edited by
      #37

      @kmuenke Die Variablen der Heizung werden immer im Javascript erzeugt. Die Hierarchie ergibt sich dann automatisch aus der Struktur des XML vom Touch UI…
      C9626C57-D407-41D8-BC19-EB48A43D14CD.png

      1 Reply Last reply
      0
      • C catnipper

        Hallo Zusammen,

        Ich habe für meine Zwecke einen Adapter zur ETA Heizungsanlage (hier: PU15) geschrieben - wer Lust zu testen kann sich gerne versuchen:

        https://github.com/frankhirsch/ioBroker.etamon

        Bitte beachtet dass der Adapter eine Freischaltung der REST API in Eurem ETA Touch (siehe auch: https://www.meineta.at) benötigt.

        Ausserdem schreibt der Adapter eine Variable in Eure Anlage (HTTP PUT). Ich mache das schon seit Jahren so mit meiner Anlage und es gab nie Probleme - wer aber Bedenken hat sollte im Zweifel die Finger davon lassen!

        Ich denke das Setup mit IP Adresse und Timeout ist selbsterklärend…

        Wenn der Adapter dann läuft wird die komplette Menüstruktur Eurer Anlage in ioBroker überführt.

        Die Laufzeit für den Adapter müsst Ihr bei Euch mal ausprobieren - die Heizungsanlagen sind nicht die schnellsten. Bei mir dauert eine normale Abfrage ca. 13 Sekunden - im Debug Modus können es auch gerne mal 2 Minuten sein.

        Da ich beruflich teilweise stark eingespannt bin, können Antworten eventuell auch mal ein bisschen Dauern :roll:

        <u>Ein Hinweise meinerseits und woran ich in Form von Feedback/Unterstützung interessiert wäre</u>:

        Wenn ich den Adapter auf einer Synology (DS916+) mit dem Docker Image buanet-iobroker nutze, kommt es vor dass das Schreiben der Werte in ioBroker fehlschlägt - teilweise wird der Adapter dann sogar mehrfach gestartet! Sobald ich das ganze auf meinem Laptop (Mac, Node 11.6.0, NPM 6.5.0) laufen lasse funktioniert es einwandfrei. Ich tippe da am ehesten auf Systemprobleme (Performance).

        2249_objects.png

        M Offline
        M Offline
        m4
        wrote on last edited by
        #38

        @catnipper

        Erstmal Danke für den Adapter! :)

        Kann man auch Variablen setzten?
        Also Hintergrund ist der: Ich habe ein FWM (Frischwassermodul) und möchte gerne bei Bedarf die Zirkulation starten? Gibts da Möglichkeiten?

        Danke und Gruß

        1 Reply Last reply
        1
        • S Offline
          S Offline
          solar-robert
          wrote on last edited by
          #39

          Würde mich auch intressieren. Kann jemand vielleicht seinen Code-Lösungsschnipsel posten, mit dem man in der Heizung Variablen ändern kann. Also Beispielweise den Heizkreis ein/aus.

          In der Dokumentation von ETA gibt es ja folgendes Beispiel:

          Example 1 Set the deash key to On:

          POST /user/var/112/10021/0/0/12112 HTTP/1.1
          Content-Type: application/x-www-form-urlencoded
          
          value=1803
          

          Allerdings fehlen mir hier leider (noch) die Kenntnisse, wie man soetwas zum laufen bringt :)

          tennoxT 1 Reply Last reply
          0
          • S solar-robert

            Würde mich auch intressieren. Kann jemand vielleicht seinen Code-Lösungsschnipsel posten, mit dem man in der Heizung Variablen ändern kann. Also Beispielweise den Heizkreis ein/aus.

            In der Dokumentation von ETA gibt es ja folgendes Beispiel:

            Example 1 Set the deash key to On:

            POST /user/var/112/10021/0/0/12112 HTTP/1.1
            Content-Type: application/x-www-form-urlencoded
            
            value=1803
            

            Allerdings fehlen mir hier leider (noch) die Kenntnisse, wie man soetwas zum laufen bringt :)

            tennoxT Offline
            tennoxT Offline
            tennox
            wrote on last edited by tennox
            #40

            @m4 in meinen eta-mate services gibt's ein Code-Schnipsel wo ich via JS (mit axios) die pellet automatik an/aus schalte:
            https://gitlab.com/txlab/eta-bot/-/blob/486c2bbc2507aa86a38694e22347f351cae08904/src/modules/eta-api.ts#L63

            S 1 Reply Last reply
            0
            • tennoxT tennox

              @m4 in meinen eta-mate services gibt's ein Code-Schnipsel wo ich via JS (mit axios) die pellet automatik an/aus schalte:
              https://gitlab.com/txlab/eta-bot/-/blob/486c2bbc2507aa86a38694e22347f351cae08904/src/modules/eta-api.ts#L63

              S Offline
              S Offline
              smarttux
              wrote on last edited by
              #41

              Da ich im Moment überlege, ob meine ganze Peripherie einen Umzug zu ioBroker verträgt, hänge ich auch am ETA Adapter.
              Gibt es den schon komplett fertig? Auf der ioBroker Seite ist er nicht direkt zu finden.
              Ich würde auch gern primär Variablen auslesen, aber auch mal aus der Ferne den Kessel ausschalten, etc.
              Danke

              A 1 Reply Last reply
              0
              • S smarttux

                Da ich im Moment überlege, ob meine ganze Peripherie einen Umzug zu ioBroker verträgt, hänge ich auch am ETA Adapter.
                Gibt es den schon komplett fertig? Auf der ioBroker Seite ist er nicht direkt zu finden.
                Ich würde auch gern primär Variablen auslesen, aber auch mal aus der Ferne den Kessel ausschalten, etc.
                Danke

                A Offline
                A Offline
                amandus99
                wrote on last edited by
                #42

                @smarttux
                Mach es über ein Skript. Das funktioniert wunderbar über den iobroker. Kannst damit auch steuernd eingreifen wenn du unbedingt magst

                S 1 Reply Last reply
                0
                • R Offline
                  R Offline
                  Rille06
                  wrote on last edited by
                  #43

                  Moin,
                  ich bin zufällig hierrüber gestolpert.
                  Hat nichts direkt mit dem Adapter zutun, aber die ETA kann auch ModBus TCP.
                  Mit dem ModBus Adapter ist dann lesen/schreiben problemlos möglich.

                  G 1 Reply Last reply
                  0
                  • R Rille06

                    Moin,
                    ich bin zufällig hierrüber gestolpert.
                    Hat nichts direkt mit dem Adapter zutun, aber die ETA kann auch ModBus TCP.
                    Mit dem ModBus Adapter ist dann lesen/schreiben problemlos möglich.

                    G Offline
                    G Offline
                    gmbh07
                    wrote on last edited by
                    #44

                    @rille06 Hallo, ich habe da mit dem Modus Adapter versucht komme aber nicht weiter, hast du vielleicht eine kleine Übersicht deiner Einstellungen? Es springt bei mir immer wie auf denn Fotos hin und her und ich habe keine Werte.
                    Bildschirmfoto 2022-08-02 um 11.06.51.png Bildschirmfoto 2022-08-02 um 11.06.45.png

                    K 1 Reply Last reply
                    0
                    • C catnipper

                      Hallo Zusammen,

                      Ich habe für meine Zwecke einen Adapter zur ETA Heizungsanlage (hier: PU15) geschrieben - wer Lust zu testen kann sich gerne versuchen:

                      https://github.com/frankhirsch/ioBroker.etamon

                      Bitte beachtet dass der Adapter eine Freischaltung der REST API in Eurem ETA Touch (siehe auch: https://www.meineta.at) benötigt.

                      Ausserdem schreibt der Adapter eine Variable in Eure Anlage (HTTP PUT). Ich mache das schon seit Jahren so mit meiner Anlage und es gab nie Probleme - wer aber Bedenken hat sollte im Zweifel die Finger davon lassen!

                      Ich denke das Setup mit IP Adresse und Timeout ist selbsterklärend…

                      Wenn der Adapter dann läuft wird die komplette Menüstruktur Eurer Anlage in ioBroker überführt.

                      Die Laufzeit für den Adapter müsst Ihr bei Euch mal ausprobieren - die Heizungsanlagen sind nicht die schnellsten. Bei mir dauert eine normale Abfrage ca. 13 Sekunden - im Debug Modus können es auch gerne mal 2 Minuten sein.

                      Da ich beruflich teilweise stark eingespannt bin, können Antworten eventuell auch mal ein bisschen Dauern :roll:

                      <u>Ein Hinweise meinerseits und woran ich in Form von Feedback/Unterstützung interessiert wäre</u>:

                      Wenn ich den Adapter auf einer Synology (DS916+) mit dem Docker Image buanet-iobroker nutze, kommt es vor dass das Schreiben der Werte in ioBroker fehlschlägt - teilweise wird der Adapter dann sogar mehrfach gestartet! Sobald ich das ganze auf meinem Laptop (Mac, Node 11.6.0, NPM 6.5.0) laufen lasse funktioniert es einwandfrei. Ich tippe da am ehesten auf Systemprobleme (Performance).

                      2249_objects.png

                      HerryH Offline
                      HerryH Offline
                      Herry
                      wrote on last edited by Herry
                      #45

                      @catnipper
                      ich habe mich an deinen Adapter versucht und nach ein paar Änderungen läuft er sehr gut. Trotzdem sind noch ein paar "undefinierbare" Fehler vorhanden, was aber komischerweise nicht am Ergebnis zur Erzeugung der Daten beiträgt.
                      Ich denke auch, das hat mit dem jeweiligen System und dessen Software zu tun.
                      Bei mir läuft das ganze auf einem Raspberry 4, 4 GB Ram problemlos und schnell.

                      ETA_VIS.jpg

                      Realisiert habe ich das über ioBroker und Vis. Die Darstellung ist sehr einfach gehalten, da der Monitor im Hausgang hängt und für jeden verständlich sein soll.
                      Hier noch die Anpassungen am Script:

                      Script.jpg

                      Zur Visualisierung läuft auf dem Raspberry auch noch Magic Mirror 2 und das sieht dann so aus:

                      MM-Display_cplt.jpg

                      Vielen Dank für deine großartige Arbeit mit dem Adapter !

                      T frischF C 3 Replies Last reply
                      0
                      • T Offline
                        T Offline
                        tcfigge
                        wrote on last edited by
                        #46

                        Hallo,
                        ich benutze schon einige Zeit das Script...
                        Läuft sehr gut!
                        Seit ich gestern den Javascript Adapter upgedatet habe, bekomme ich folgende Fehlermeldung:

                        5.10.2022, 18:55:43.852	[info ]: javascript.1 (22832) Stop script script.js.common.Blockly.Diverse.ETA
                        5.10.2022, 18:55:43.864	[info ]: javascript.0 (14977) Stop script script.js.common.Blockly.Diverse.ETA
                        5.10.2022, 18:55:43.920	[info ]: javascript.0 (14977) Start javascript script.js.common.Blockly.Diverse.ETA
                        5.10.2022, 18:55:44.060	[error]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: Error: Cannot find module 'xpath'
                        5.10.2022, 18:55:44.061	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:2:13
                        5.10.2022, 18:55:44.062	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:124:3
                        5.10.2022, 18:55:44.089	[error]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: Error: Cannot find module 'xmldom'
                        5.10.2022, 18:55:44.090	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:3:11
                        5.10.2022, 18:55:44.091	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:124:3
                        5.10.2022, 18:55:44.119	[info ]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                        5.10.2022, 18:55:44.122	[error]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: TypeError: Cannot read properties of undefined (reading 'DOMParser')
                        5.10.2022, 18:55:44.122	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:3:28
                        5.10.2022, 18:55:44.122	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:124:3
                        

                        Hat jemand eine Idee und kann mir helfen?

                        T J 2 Replies Last reply
                        0
                        • T tcfigge

                          Hallo,
                          ich benutze schon einige Zeit das Script...
                          Läuft sehr gut!
                          Seit ich gestern den Javascript Adapter upgedatet habe, bekomme ich folgende Fehlermeldung:

                          5.10.2022, 18:55:43.852	[info ]: javascript.1 (22832) Stop script script.js.common.Blockly.Diverse.ETA
                          5.10.2022, 18:55:43.864	[info ]: javascript.0 (14977) Stop script script.js.common.Blockly.Diverse.ETA
                          5.10.2022, 18:55:43.920	[info ]: javascript.0 (14977) Start javascript script.js.common.Blockly.Diverse.ETA
                          5.10.2022, 18:55:44.060	[error]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: Error: Cannot find module 'xpath'
                          5.10.2022, 18:55:44.061	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:2:13
                          5.10.2022, 18:55:44.062	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:124:3
                          5.10.2022, 18:55:44.089	[error]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: Error: Cannot find module 'xmldom'
                          5.10.2022, 18:55:44.090	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:3:11
                          5.10.2022, 18:55:44.091	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:124:3
                          5.10.2022, 18:55:44.119	[info ]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                          5.10.2022, 18:55:44.122	[error]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: TypeError: Cannot read properties of undefined (reading 'DOMParser')
                          5.10.2022, 18:55:44.122	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:3:28
                          5.10.2022, 18:55:44.122	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:124:3
                          

                          Hat jemand eine Idee und kann mir helfen?

                          T Offline
                          T Offline
                          tcfigge
                          wrote on last edited by
                          #47

                          @tcfigge Nach Downgrade auf Javascriptadapter 6.0 läuft es erstmal wieder... ?!?!?

                          frischF 1 Reply Last reply
                          0
                          • HerryH Herry

                            @catnipper
                            ich habe mich an deinen Adapter versucht und nach ein paar Änderungen läuft er sehr gut. Trotzdem sind noch ein paar "undefinierbare" Fehler vorhanden, was aber komischerweise nicht am Ergebnis zur Erzeugung der Daten beiträgt.
                            Ich denke auch, das hat mit dem jeweiligen System und dessen Software zu tun.
                            Bei mir läuft das ganze auf einem Raspberry 4, 4 GB Ram problemlos und schnell.

                            ETA_VIS.jpg

                            Realisiert habe ich das über ioBroker und Vis. Die Darstellung ist sehr einfach gehalten, da der Monitor im Hausgang hängt und für jeden verständlich sein soll.
                            Hier noch die Anpassungen am Script:

                            Script.jpg

                            Zur Visualisierung läuft auf dem Raspberry auch noch Magic Mirror 2 und das sieht dann so aus:

                            MM-Display_cplt.jpg

                            Vielen Dank für deine großartige Arbeit mit dem Adapter !

                            T Offline
                            T Offline
                            tcfigge
                            wrote on last edited by
                            #48

                            @herry
                            Hi!
                            Super Vis!!!!
                            Würdest Du die zur Verfügung stellen?
                            Danke!

                            1 Reply Last reply
                            0
                            • T tcfigge

                              Hallo,
                              ich benutze schon einige Zeit das Script...
                              Läuft sehr gut!
                              Seit ich gestern den Javascript Adapter upgedatet habe, bekomme ich folgende Fehlermeldung:

                              5.10.2022, 18:55:43.852	[info ]: javascript.1 (22832) Stop script script.js.common.Blockly.Diverse.ETA
                              5.10.2022, 18:55:43.864	[info ]: javascript.0 (14977) Stop script script.js.common.Blockly.Diverse.ETA
                              5.10.2022, 18:55:43.920	[info ]: javascript.0 (14977) Start javascript script.js.common.Blockly.Diverse.ETA
                              5.10.2022, 18:55:44.060	[error]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: Error: Cannot find module 'xpath'
                              5.10.2022, 18:55:44.061	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:2:13
                              5.10.2022, 18:55:44.062	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:124:3
                              5.10.2022, 18:55:44.089	[error]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: Error: Cannot find module 'xmldom'
                              5.10.2022, 18:55:44.090	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:3:11
                              5.10.2022, 18:55:44.091	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:124:3
                              5.10.2022, 18:55:44.119	[info ]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                              5.10.2022, 18:55:44.122	[error]: javascript.0 (14977) script.js.common.Blockly.Diverse.ETA: TypeError: Cannot read properties of undefined (reading 'DOMParser')
                              5.10.2022, 18:55:44.122	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:3:28
                              5.10.2022, 18:55:44.122	[error]: javascript.0 (14977)     at script.js.common.Blockly.Diverse.ETA:124:3
                              

                              Hat jemand eine Idee und kann mir helfen?

                              J Offline
                              J Offline
                              JoschiP
                              wrote on last edited by
                              #49

                              Hallo, ich habe das gleiche Problem. Hab am Wochenende mal wieder ein paar Aktualisierungen durchgeführt.
                              Seit dem funktioniert das ETA Script bei mir auch nicht mehr. Scheinbar wurde das Module XMLDOM aus node.js entfernt.
                              Kennt jemand eine alternative?
                              Leider hat das Downgrade auf Javascript Version 6.0 bei mir nicht geholfen
                              Danke

                              1 Reply Last reply
                              0
                              • HerryH Herry

                                @catnipper
                                ich habe mich an deinen Adapter versucht und nach ein paar Änderungen läuft er sehr gut. Trotzdem sind noch ein paar "undefinierbare" Fehler vorhanden, was aber komischerweise nicht am Ergebnis zur Erzeugung der Daten beiträgt.
                                Ich denke auch, das hat mit dem jeweiligen System und dessen Software zu tun.
                                Bei mir läuft das ganze auf einem Raspberry 4, 4 GB Ram problemlos und schnell.

                                ETA_VIS.jpg

                                Realisiert habe ich das über ioBroker und Vis. Die Darstellung ist sehr einfach gehalten, da der Monitor im Hausgang hängt und für jeden verständlich sein soll.
                                Hier noch die Anpassungen am Script:

                                Script.jpg

                                Zur Visualisierung läuft auf dem Raspberry auch noch Magic Mirror 2 und das sieht dann so aus:

                                MM-Display_cplt.jpg

                                Vielen Dank für deine großartige Arbeit mit dem Adapter !

                                frischF Offline
                                frischF Offline
                                frisch
                                wrote on last edited by
                                #50

                                @herry HI! Geniale VIS könnte man die bekommen? LG Friedrich

                                1 Reply Last reply
                                0
                                • G gmbh07

                                  @rille06 Hallo, ich habe da mit dem Modus Adapter versucht komme aber nicht weiter, hast du vielleicht eine kleine Übersicht deiner Einstellungen? Es springt bei mir immer wie auf denn Fotos hin und her und ich habe keine Werte.
                                  Bildschirmfoto 2022-08-02 um 11.06.51.png Bildschirmfoto 2022-08-02 um 11.06.45.png

                                  K Offline
                                  K Offline
                                  Kapsville
                                  wrote on last edited by
                                  #51

                                  @gmbh07 said in [Projekt] ETA Heizung:

                                  @rille06 Hallo, ich habe da mit dem Modus Adapter versucht komme aber nicht weiter, hast du vielleicht eine kleine Übersicht deiner Einstellungen? Es springt bei mir immer wie auf denn Fotos hin und her und ich habe keine Werte.
                                  Bildschirmfoto 2022-08-02 um 11.06.51.png Bildschirmfoto 2022-08-02 um 11.06.45.png

                                  Habe auch dieses Problem. @gmbh07 konntest du das Problem in der Zwischenzeit lösen?

                                  frischF R 2 Replies Last reply
                                  0
                                  • A amandus99

                                    @smarttux
                                    Mach es über ein Skript. Das funktioniert wunderbar über den iobroker. Kannst damit auch steuernd eingreifen wenn du unbedingt magst

                                    S Offline
                                    S Offline
                                    solar-robert
                                    wrote on last edited by
                                    #52

                                    @amandus99 said in [Projekt] ETA Heizung:

                                    @smarttux
                                    Mach es über ein Skript. Das funktioniert wunderbar über den iobroker. Kannst damit auch steuernd eingreifen wenn du unbedingt magst

                                    Könntest du bitte dein funktionierendes Skript teilen?
                                    Ich bin leider auf noch einen grünen Zweig gekommen, wie ich die Anlage über den ioBroker schalten kann.
                                    Also beispielsweise Pumpe/Kessel aus oder VL-Temperatur-Erhöhung.

                                    A 1 Reply Last reply
                                    0
                                    • S solar-robert

                                      @amandus99 said in [Projekt] ETA Heizung:

                                      @smarttux
                                      Mach es über ein Skript. Das funktioniert wunderbar über den iobroker. Kannst damit auch steuernd eingreifen wenn du unbedingt magst

                                      Könntest du bitte dein funktionierendes Skript teilen?
                                      Ich bin leider auf noch einen grünen Zweig gekommen, wie ich die Anlage über den ioBroker schalten kann.
                                      Also beispielsweise Pumpe/Kessel aus oder VL-Temperatur-Erhöhung.

                                      A Offline
                                      A Offline
                                      amandus99
                                      wrote on last edited by
                                      #53

                                      @solar-robert

                                      klar schau es dir an, habe zB einen Datenpunkt mit dem ich die Zirkulation vom FWM an und ausschalten kann

                                      var http = require('http');
                                      var xpath = require('xpath');
                                      var dom = require('xmldom').DOMParser;
                                      
                                      var etaIP = 'http://192.168.10.82:8080/user/var';
                                      
                                      	// 1. URI
                                      	// 2. iobroker Object
                                      	// 3. read
                                      	// 4. write
                                      	// 5. name
                                      	// 6. type
                                      	// 7. unit
                                      	// 8. role
                                      	// 9. CCU variable (optional)
                                      var etaVars = [
                                      	 ["/120/10601/0/11327/0",		"eta.Puffer.oben",				    true, false, "Puffer oben",						"string",	"°C",		"value.temperature",    ""]
                                          ,["/120/10601/0/11328/0",		"eta.Puffer.mitte",				    true, false, "Puffer mitte",					"string",	"°C",		"value.temperature",    ""]
                                          ,["/120/10601/0/11329/0",		"eta.Puffer.unten",				    true, false, "Puffer unten",					"string",	"°C",		"value.temperature",    ""]
                                          ,["/120/10601/0/0/12528",		"eta.Puffer.ladezustand",		    true, false, "Puffer Ladezustand",				"number",	"%",		"state",    ""] 
                                          
                                          ,["/120/10101/0/11125/2120",	"eta.HK.vorlauf",		            true, false, "Heizkreis Vorlauf Soll Temp",		"number",	"°C",		"value.temperature",    ""] 
                                          ,["/120/10101/0/11125/2121",	"eta.HK.vorlaufIst",		        true, false, "Heizkreis Vorlauf Ist Temp",		"number",	"°C",		"value.temperature",    ""] 
                                         
                                        
                                          ,["/40/10021/0/0/12153",		"eta.kessel.vollast",			    true, false, "Kessel Vollaststunden",			"string",	"",		    "state",                ""]
                                      	,["/40/10021/0/0/12016",		"eta.kessel.verbrauch",			    true, false, "Kessel Gesmtverbrauch",			"number",	"kg",		"state",                ""]
                                      	,["/40/10021/0/0/12013",		"eta.kessel.aschebox",			    true, false, "Kessel Verbrauch seit Aschebox",	"number",	"kg",		"state",                ""]
                                      	,["/40/10021/0/0/12180",		"eta.kessel.druck",				    true, false, "Kessel Druck",					"number",	"bar",		"state",                ""]
                                      	,["/40/10021/0/0/12001",		"eta.kessel.soll",				    true, false, "Kessel Soll",						"number",	"°C",		"state",                ""]
                                      	,["/40/10021/0/0/12161",		"eta.kessel.ist",				    true, false, "Kessel Ist",						"number",	"°C",		"state",                ""]
                                      	,["/40/10021/0/0/12162",		"eta.kessel.abgasgtemp",		    true, false, "Kessel Abgastemperatur",			"number",	"°C",	    "state",                ""]
                                      	,["/40/10021/0/0/12165",		"eta.kessel.abgasgeblaese",		    true, false, "Kessel Abgasgebläse",				"number",	"U/min",	"state",                ""]
                                      	,["/40/10021/0/0/12164",		"eta.kessel.restsauerstoff",	    true, false, "Kessel Restsauerstoff",			"number",	"%",		"state",                ""]
                                      	,["/40/10021/0/0/12080",		"eta.kessel.zustand",			    true, false, "Kessel Zustand",					"string",	"",			"state",                ""]
                                          ,["/40/10021/0/0/12077",		"eta.kessel.angeforderteLeistung",	true, false, "Kessel angeforderte Leistung",	"number",	"kW",		"state",                ""]
                                      	
                                      	,["/40/10201/0/0/12015",		"eta.lager.silo",				    true, false, "Pellets Silo",					"number",	"kg",		"state",                ""]
                                      	,["/40/10021/0/0/12011",		"eta.lager.tag",				    true, false, "Pellets Tagesbehälter",			"number",	"kg",		"state",                ""]
                                      	,["/120/10601/0/0/12197",		"eta.system.aussentemperatur",	    true, false, "Aussentemperatur",				"number",	"°C",		"state",                ""]
                                      
                                          ,["/79/10531/0/11137/2001",		"eta.FWM.Zirkulation",	            true, false, "Anforderung Zirkulation",			"string",	"",		    "state",                ""]
                                          
                                          ,["/120/10101/0/11125/2001",	"eta.FBH.HKmischerAnforderung",	    true, false, "Anforderung Heizkreismischer",	"string",	"",		    "state",                ""]
                                          ,["/120/10101/0/11125/2120",	"eta.FBH.HKmischerSoll",	        true, false, "Soll Temp Heizkreismischer",	    "number",	"°C",		"value.temperature",    ""]
                                          ,["/120/10101/0/11125/2121",	"eta.FBH.HKmischerIst",	            true, false, "Ist Temp Heizkreismischer",	    "number",	"°C",		"value.temperature",    ""]
                                          ,["/120/10101/0/11125/2002",	"eta.FBH.HKmischerZustand",	        true, false, "Zustand Heizkreismischer",	    "string",	"",		    "state",                ""]
                                          ,["/120/10101/0/11125/2127",	"eta.FBH.HKmischerPosition",	    true, false, "Position Heizkreismischer",	    "number",	"%",	    "value.percent",        ""]
                                          ,["/120/10101/0/11125/2124",	"eta.FBH.Laufzeit",	                true, false, "Laufzeit Heizkreismischer",	    "number",	"s",		"",           ""]
                                          ,["/120/10101/0/11125/0",	    "eta.FBH.HKpumpeAusgang",	        true, false, "Heizkreispumpe Ausgang",	        "number",	"°C",		"value.temperature",    ""]
                                          ,["/120/10101/0/11125/2001",	"eta.FBH.HKpumpeAnforderung",       true, false, "Heizkreispumpe Anforderung",      "string",	"",		    "state",                ""]
                                          
                                          
                                      ///79/10531/12175/0/1109 Alternative
                                          
                                      ];
                                      
                                      etaVars.forEach(function(etaVar){
                                          createState(etaVar[1], 0, {
                                              read:  etaVar[2],
                                              write: etaVar[3],
                                              name:  etaVar[4],
                                              type:  etaVar[5],
                                              unit:  etaVar[6],
                                              role:  etaVar[7]
                                          });
                                      });
                                      
                                      schedule("*/5 * * * *", function () {
                                          pollETA();
                                      });
                                      schedule("0 0 * * *", function () {
                                          checkLager();
                                      });
                                      
                                      pollETA();
                                      
                                      
                                      //var lagerAlt = getState('javascript.0.eta.lager.silo').val;
                                      //deleteState("javascript.0.eta.lager.verbrauch");
                                      
                                      //createState("javascript.0.eta.lager.verbrauch",0,{name:'Lager Tagesverbrauch', type: 'number', unit: 'kg', role:'state'});
                                      //createState("javascript.0.eta.lager.alt",LagerAlt,{name:'Lager TempAlt', type: 'number', unit: 'kg', role:'state'});
                                      //createState("javascript.0.eta.lager.Resttage",-1,{name:'Lager Anzahl Tage', type: 'number', unit: 'days', role:'state'});
                                      //createState("javascript.0.eta.lager.letzterTag",-1,{name:'Lager Letzter Tag mit Pellets', type: 'string', unit: '', role:'state'});
                                      
                                      //setState("javascript.0.eta.lager.alt", LagerAlt, true/*ack*/);
                                      //var LagerNeu = checkLager(LagerAlt);
                                      //checkLager();
                                      
                                      
                                      function debugOutput(){
                                          var akt = getState('javascript.0.eta.lager.silo').val;
                                          var verbrauch = getState("javascript.0.eta.lager.verbrauch").val;
                                          var restTage = 0;
                                          restTage = Math.round(akt/verbrauch)
                                      
                                          log("## Aktuelle Verbrauswerte ##");
                                          log("----------------------------");
                                          log("Lager akt: " + akt);
                                          log("Lager verbrauch: " + verbrauch);
                                          var ungerundet = akt/verbrauch;
                                          log("ungerundet: " +ungerundet);
                                          log("restTage " + restTage);
                                          var someDate = new Date();
                                      
                                          var numberOfDaysToAdd = restTage;
                                          someDate.setDate(someDate.getDate() + numberOfDaysToAdd); 
                                          var endOfPellets = formatDate(someDate, "DD.MM.YYYY");
                                          log("endofPellets: " + endOfPellets);
                                      
                                          setState("javascript.0.eta.lager.letzterTag", endOfPellets, true);
                                          setState("javascript.0.eta.lager.Resttage", restTage, true);
                                      }
                                      
                                      //debugOutput();
                                      
                                      
                                      
                                      function checkLager(){
                                          var lagerAlt = getState('javascript.0.eta.lager.alt').val;
                                          //var LagerAlt = getState('javascript.0.eta.lager.silo').val;
                                          var akt = getState('javascript.0.eta.lager.silo').val;
                                          log("** Aktuelle Verbrauswerte **");
                                          log("----------------------------");
                                          log("Lager alt: " + lagerAlt);
                                          log("Lager aktuell: " + akt);
                                          var verbrauch = lagerAlt - akt;
                                          //var verbrauch = getState("javascript.0.eta.lager.verbrauch").val;
                                      
                                          // edit back after debug
                                          setState("javascript.0.eta.lager.verbrauch", verbrauch, true/*ack*/);
                                          setState("javascript.0.eta.lager.alt", akt, true/*ack*/);
                                          
                                          log("Verbrauch: " + verbrauch);
                                          
                                         
                                          
                                          var restTage = 0;
                                          restTage = Math.round(akt/verbrauch);
                                          var ungerundet = akt/verbrauch;
                                          var someDate = new Date();
                                          var numberOfDaysToAdd = restTage;
                                          someDate.setDate(someDate.getDate() + numberOfDaysToAdd); 
                                          var endOfPellets = formatDate(someDate, "DD.MM.YYYY");
                                          setState("javascript.0.eta.lager.letzterTag", endOfPellets, true);
                                          setState("javascript.0.eta.lager.Resttage", restTage, true);
                                          
                                          log("end of pellets" + endOfPellets);
                                          
                                          lagerAlt = akt;
                                          
                                      }
                                      
                                      //checkLager();
                                      
                                      function pollETA() {
                                          // log("** Polling ETA Variables");
                                      	etaVars.forEach(function(etaVar){
                                      		http.get(etaIP + etaVar[0], function (http_res) {
                                      
                                      			// initialize the container for our data
                                      			var data = "";
                                      
                                      			// this event fires many times, each time collecting another piece of the response
                                      			http_res.on("data", function (chunk) {
                                      				// append this chunk to our growing `data` var
                                      				data += chunk;
                                      				// log("** ETA chunk: " + chunk);
                                      			});
                                      
                                      			// this event fires *one* time, after all the `data` events/chunks have been gathered
                                      			http_res.on("end", function () {
                                      				// log("** ETA data: " + data);
                                      
                                      				try {
                                      					var doc = new dom().parseFromString(data);
                                      					var select = xpath.useNamespaces({"eta": "http://www.eta.co.at/rest/v1"});
                                      
                                      					var strValue    = (select('//eta:value/@strValue',    doc)[0].nodeValue);
                                      					var text        = (select('//eta:value/text()',       doc)[0].nodeValue);
                                      					var scaleFactor = (select('//eta:value/@scaleFactor', doc)[0].nodeValue);
                                      					var unit        = (select('//eta:value/@unit',        doc)[0].nodeValue);
                                                          var value       = "";
                                                          
                                      					
                                                          
                                      					
                                      
                                                          //change Aus to false, An to true for Zirkulation
                                                          if (etaVar[0] == "/79/10531/0/11137/2001"){
                                                              if (strValue == "Aus"){
                                                                  strValue = "false";
                                                              }
                                                              else
                                                                  strValue = "true";
                                                          }
                                                          if (etaVar[5]=="number") {
                                      						value = text * 1.0 / scaleFactor;
                                      					} else {
                                      						value = strValue;
                                      					}
                                      
                                      
                                      					setState(etaVar[1], value, true);
                                      
                                      				}
                                      				catch (e) {
                                      					log("ETA: Cannot set data "+ etaVar[2] +":" + e, 'error');
                                      				}
                                      			});
                                      		});
                                      	});
                                      	
                                      
                                      }
                                      
                                      1 Reply Last reply
                                      0
                                      • K Kapsville

                                        @gmbh07 said in [Projekt] ETA Heizung:

                                        @rille06 Hallo, ich habe da mit dem Modus Adapter versucht komme aber nicht weiter, hast du vielleicht eine kleine Übersicht deiner Einstellungen? Es springt bei mir immer wie auf denn Fotos hin und her und ich habe keine Werte.
                                        Bildschirmfoto 2022-08-02 um 11.06.51.png Bildschirmfoto 2022-08-02 um 11.06.45.png

                                        Habe auch dieses Problem. @gmbh07 konntest du das Problem in der Zwischenzeit lösen?

                                        frischF Offline
                                        frischF Offline
                                        frisch
                                        wrote on last edited by
                                        #54

                                        @kapsville
                                        Hi hab auch dieses Problem...
                                        Gibt es eine Lösung?
                                        LG
                                        Friedrich

                                        1 Reply Last reply
                                        0
                                        • T tcfigge

                                          @tcfigge Nach Downgrade auf Javascriptadapter 6.0 läuft es erstmal wieder... ?!?!?

                                          frischF Offline
                                          frischF Offline
                                          frisch
                                          wrote on last edited by
                                          #55

                                          @tcfigge
                                          Hi ich komme nur auf 6.0.1 zurück. Gibt es eine Möglichkeit auf 6.0 zu kommen bzw. 5.x? Vielen Dank für eure Hilfe..
                                          LG Friedrich

                                          T 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          716

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe