Ankündigung

Einklappen
Keine Ankündigung bisher.

Wärmepumpe Dimplex System M

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [Codebeispiel] Wärmepumpe Dimplex System M

    Nachdem ich diese Info bis jetzt nirgendwo im Netz gefunden habe: In den Wärmepumpen von Dimplex 'System M' steckt ein Raspberry, der das Display darstellt und sich die Infos vom Wärmepumpenmanager über ModBUS holt. Das Display stellt einen Browser dar, der eine 17,3 MB große index.html aufruft, in der alle Anzeigelogik steckt. Diese Webapplikation holt sich die Daten der Wärmepumpe über REST von einen nodeJS Server der da drauf läuft. Der ist auch von außen erreichbar! Die URL des Interfaces ist beispielsweise: http://192.168.30.254/api/v2/functio...PLAY_BETREIBER
    Als Besitzer dieser Wärmepumpe schraubt man das Teil vermutlich am besten auf um ein Backup der SD-Karte zu machen. (Vermutlich verreckt die genau, sobald die Garantie durch ist - und dann wars das mit der Konfiguration!) Bei der Gelegenheit kann man sich gleich die index.html runterladen. Die öffnet man in nem Text-Editor und ersetzt 'localhost' durch die IP der Wärmepumpe. Und schon läuft die Applikation auch lokal auf dem Rechner und holt sich die Daten von der Wärmepumpe! So macht es dann viel mehr Spaß, die umzukonfigurieren, nachdem das Touchdisplay nicht so das Gelbe vom Ei ist...
    Um sich die Parameter in openhab zu holen klappt folgendes :
    File services/http.cfg:
    Code:
    waermepumpe_rest_data.url=http://[IP]/api/v2/functiondata/groups?groups=DATEN_DISPLAY_BETREIBER
    waermepumpe_rest_data.updateInterval=60000
    File items/waermepumpe.items:
    Code:
    Group Waermepumpe "Waermepumpe" (Home) ["Waermepumpe"]
    
    Number waermepumpe_temp_aussen "WP Temperatur außen [%.2f °C]" (Waermepumpe) { http="<[waermepumpe_rest_data:60000:JSONPATH($.DATEN_DISPL AY_BETREIBER[0].value)]" }
    Number waermepumpe_temp_warmwasser_ist "WP Warmwasser ist [%.2f °C]" (Waermepumpe) { http="<[waermepumpe_rest_data:60000:JSONPATH($.DATEN_DISPL AY_BETREIBER[1].value)]" }
    Number waermepumpe_temp_warmwasser_soll "WP Warmwasser soll [%.2f °C]" (Waermepumpe) { http="<[waermepumpe_rest_data:60000:JSONPATH($.DATEN_DISPL AY_BETREIBER[2].value)]" }
    Number waermepumpe_temp_vorlauf "WP Vorlauf [%.2f °C]" (Waermepumpe) { http="<[waermepumpe_rest_data:60000:JSONPATH($.DATEN_DISPL AY_BETREIBER[3].value)]" }
    Number waermepumpe_temp_ruecklauf "WP Rücklauf [%.2f °C]" (Waermepumpe) { http="<[waermepumpe_rest_data:60000:JSONPATH($.DATEN_DISPL AY_BETREIBER[4].value)]" }
    Number waermepumpe_temp_heizkreis_ist "WP Heizkreis ist [%.2f °C]" (Waermepumpe) { http="<[waermepumpe_rest_data:60000:JSONPATH($.DATEN_DISPL AY_BETREIBER[5].value)]" }
    Number waermepumpe_temp_heizkreis_soll "WP Heizkreis soll [%.2f °C]" (Waermepumpe) { http="<[waermepumpe_rest_data:60000:JSONPATH($.DATEN_DISPL AY_BETREIBER[6].value)]" }
    String waermepumpe_status "WP Status [MAP(waermepumpe_status.map):%s]" (Waermepumpe) { http="<[waermepumpe_rest_data:60000:JSONPATH($.DATEN_DISPL AY_BETREIBER[11].value)]"}
    File transform/waermepumpe_status.map:
    Code:
    0=Aus
    0.1=Aus
    0.2=Heizen
    0.3=Schwimmbad
    0.4=Warmwasser
    0.5=Kühlen
    0.6=Energie-Opt.
    1=Abtauen
    1.1=Durchflussüberwachung
    1.2=Wartezeit
    2.4=Verzögerung Betriebsmodusumschaltung
    3=Sperre
    -=unbekannt
    Vielleicht kann das ja jemand brauchen

    #2
    Hier ein Update für Openhab3:
    Items-File:
    Code:
    Group Waermepumpe "Waermepumpe" (Home) ["Waermepumpe"]
    
    Number waermepumpe_temp_aussen "WP Temperatur außen [%.2f °C]" (Waermepumpe) { channel="http:url:waermepumpe:waermepumpe_temp_aus sen" }
    Number waermepumpe_temp_warmwasser_ist "WP Warmwasser ist [%.2f °C]" (Waermepumpe) { channel="http:url:waermepumpe:waermepumpe_temp_war mwasser_ist" }
    Number waermepumpe_temp_warmwasser_soll "WP Warmwasser soll [%.2f °C]" (Waermepumpe) { channel="http:url:waermepumpe:waermepumpe_temp_war mwasser_soll" }
    Number waermepumpe_temp_vorlauf "WP Vorlauf [%.2f °C]" (Waermepumpe) { channel="http:url:waermepumpe:waermepumpe_temp_vor lauf" }
    Number waermepumpe_temp_ruecklauf "WP Rücklauf [%.2f °C]" (Waermepumpe) { channel="http:url:waermepumpe:waermepumpe_temp_rue cklauf" }
    Number waermepumpe_temp_heizkreis_ist "WP Heizkreis ist [%.2f °C]" (Waermepumpe) { channel="http:url:waermepumpe:waermepumpe_temp_hei zkreis_ist" }
    Number waermepumpe_temp_heizkreis_soll "WP Heizkreis soll [%.2f °C]" (Waermepumpe) { channel="http:url:waermepumpe:waermepumpe_temp_hei zkreis_soll" }
    String waermepumpe_status "WP Status [MAP(waermepumpe_status.map):%s]" (Waermepumpe) { channel="http:url:waermepumpe:waermepumpe_status" }
    Things-File:
    Code:
    Thing http:url:waermepumpe "Waermepumpe" [
    baseURL = "http://192.168.30.254/api/v2/functiondata/groups?groups=DATEN_DISPLAY_BETREIBER",
    refresh = "60",
    ignoreSSLErrors = "true"
    ]
    {
    Channels:
    Type number: waermepumpe_temp_aussen "WP Temperatur aussen" [
    mode = "READONLY",
    stateTransformation = "JSONPATH:$.DATEN_DISPLAY_BETREIBER[0].value"
    ]
    Type number: waermepumpe_temp_warmwasser_ist "WP Temperatur Warmwasser ist" [
    mode = "READONLY",
    stateTransformation = "JSONPATH:$.DATEN_DISPLAY_BETREIBER[1].value"
    ]
    Type number: waermepumpe_temp_warmwasser_soll "WP Temperatur Warmwasser soll" [
    mode = "READONLY",
    stateTransformation = "JSONPATH:$.DATEN_DISPLAY_BETREIBER[2].value"
    ]
    Type number: waermepumpe_temp_vorlauf "WP Temperatur Vorlauf" [
    mode = "READONLY",
    stateTransformation = "JSONPATH:$.DATEN_DISPLAY_BETREIBER[3].value"
    ]
    Type number: waermepumpe_temp_ruecklauf "WP Temperatur Ruecklauf" [
    mode = "READONLY",
    stateTransformation = "JSONPATH:$.DATEN_DISPLAY_BETREIBER[4].value"
    ]
    Type number: waermepumpe_temp_heizkreis_ist "WP Temperatur Heizkreis ist" [
    mode = "READONLY",
    stateTransformation = "JSONPATH:$.DATEN_DISPLAY_BETREIBER[5].value"
    ]
    Type number: waermepumpe_temp_heizkreis_soll "WP Temperatur Heizkreis soll" [
    mode = "READONLY",
    stateTransformation = "JSONPATH:$.DATEN_DISPLAY_BETREIBER[6].value"
    ]
    Type number: waermepumpe_status "WP Status" [
    mode = "READONLY",
    stateTransformation = "JSONPATH:$.DATEN_DISPLAY_BETREIBER[11].value"
    ]
    }

    Kommentar


      #3
      Nachdem hier doch hin und wieder jemand vorbei schaut, der das gleiche Gerät hat, hier die Info:
      Nach nicht mal 3 Jahren ist die SD Karte des Raspberry PIs kaputt gegangen (Ich hatte das schon geahnt und lieber gleich mal ein Backup gemacht, über das ich jetzt froh bin ) habe ich die Wärmepumpe mal ins Netz gelassen und ein Update gezogen. Was soll ich sagen: die haben jetzt Firewall-Rules
      Um das ganze weiter zu verwenden: In der Datei /usr/local/uhi/lib/firewall/index.js '-P INPUT DROP' zu '-P INPUT ACCEPT' ändern. Dann ist die Firewall aus! (Und Du selbst für dein Glück verantwortlich )
      Wenn man schon dabei ist, kann man auch gleich dran denken, ssh public keys für den login zu hinterlegen.
      Viel Spaß!

      Kommentar


        #4
        Hallo ich habe dir eine PN geschickt vielleicht kannst du mr helfen

        Danke

        Kommentar


          #5
          Hallo andylampl,
          sorry. Ich hatte das gar nicht mitbekommen - die Mails von hier landen immer im Spam-Ordner
          Damit auch andere was davon haben, bin ich mal so frei und pack Deine Nachricht hier mit rein:

          Code:
          Hallo
          
          Ich würde auch gerne eine Dimplex System M in openhab einbinden leider bin ich da Komplett neuling.
          Ich habe schon mal das Problem das ich mit deinem URL was du angegeben hast nichtmal bis zur WP komme.
          Das einzige lebenszeichen was ich bekomme wenn ich mit dem putty über ssh auf die IP zugreife da fragt er mich nach einem User.
          Aber sie ist weder pingbar noch über die weboberfläche erreichbar.
          Beim openhab verstehe ich nicht wie ich die ganzen coe reinbekomme.
          
          Ich hoffe du kannst mir helfen und entschuldige bitte meine unwiesenheit.
          
          Danke
          
          mfg Andi
          ​
          Das ist das oben beschriebene Problem mit der Firewall. Du muss die SD-Karte aus dem Raspberry PI ausbauen und sie mit einem Rechner bearbeiten. Ich weiß nicht, ob das inzwischen auch irgendwie unter Windows geht. Unter Linux kannst Du das Dateisystem einfach mounten und dann die oben beschriebene Datei bearbeiten um die Firewall auszuschalten. Wenn Du kein Windows hast, kannst Du auch irgend ein Live-Linux verwenden dass Du direkt von USB starten kannst.

          Bei obenhab gibt es Configdateien, die unter /etc/openhab/items und /etc/openhab/things liegen. Dort legst du die beiden Codes von oben einfach in jeweils eine Datei rein. (die Dateiendung ist dabei auch jeweils .items oder .things)

          Viele Grüße
          Max

          Kommentar


            #6
            Hallo danke dir

            Ich habe auch übersehen das du zurückgeschrieben hast.

            Werde es gleich mal Probieren.

            Wenn ich darf meld ich mich nochmal fals es nicht klappt.

            Kommentar


              #7
              Hy ich habe mal erfolgreich die SD Karte unter linux Kopiert aber wenn ich die index.js im ordner Firewall umschreiben will sagt er immer das ich kein recht habe habe auch Probiert herauskopieren und dan wieder einfügen wieder das gleiche ich habe kein recht wie hast du das geschaft

              Danke

              Kommentar


                #8
                Ich gehe davon aus, dass Du auf einem Raspberry unterwegs bist. Dann sollte sudo installiert sein. Mit sudo kannst Du jeden Befehl mit den Nutzerrechten von root ausführen, also z.B. sudo mv index.js /usr/local/uhi/lib/firewall/ bewegt die Datei index.js aus dem aktuellen Ordner in den Zielordner. Der Name der Datei bleibt dabei erhalten.
                Allerdings solltest Du Dich vergewissern, dass die Rechte und der Besitzer noch stimmen (kannst Du mit ls -l /usr/local/uhi/lib/firewall/​index.js nachschauen. Falls da was nicht stimmt: sudo chown user:group /usr/local/uhi/lib/firewall/​index.js​ sorgt dafür, dass die Datei dem User user gehört und der Gruppe group zugeordnet wird.
                Außerdem sorgst Du mit sudo chmod 644 /usr/local/uhi/lib/firewall/​index.js dafür, dass die Rechte rw-r--r-- für die Datei gesetzt werden.
                Die einzelnen Buchstaben stehen für Read, Write und eXecute (gibt noch andere, hier sind nur diese wichtig). Das Muster muss gleich sein. Die drei Buchstaben sind in drei Gruppen eingeteilt, die erste Gruppe gehört zum Besitzer, die zweite Gruppe zur Nutzergruppe und die dritte Gruppe für alle anderen, also die User, die weder Besitzer der Datei sind noch der Gruppe angehören, die für die Datei gesetzt ist.
                Das r zählt 4, das w zählt 2, das x zählt 1. Die Zahlen werden dann pro Buchstabengruppe addiert. Die erste Ziffer steht für den Besitzer, die zweite für die Gruppe und die dritte für alle anderen.
                Ich habe gerade kein System mit der fraglichen Datei zur Hand, Du musst also selbst schauen, wie die korrekten Werte für die Datei lauten.

                Alternativ kannst Du auch einfach die Originaldatei bearbeiten. sudo nano /usr/local/uhi/lib/firewall/​index.js​ sorgt dabei dafür, dass Du die veränderte Datei auch unter dem alten Namen abspeichern darfst. Dabei werden die Rechte und Besitzverhältnisse nicht geändert, Du musst Dich dann also auch nicht darum kümmern (anders als bei der Kopie der Datei, die Du erstellt hast)

                Das Passwort, welches sudo bei der ersten Nutzung (und später nach einem gewissen Zeitraum der Nichtnutzung, ich glaube 10 Minuten) abfragt, ist das des angemeldeten Users (der natürlich die Berechtigung haben muss, sudo zu nutzen - z.B. der User pi oder beim openHABian Image der User openhabian)
                Zuletzt geändert von udo1toni; 10.04.2023, 00:46.

                Kommentar


                  #9
                  Hy danke für die Antwort die SD Karte ist normal in einem Raspi das ist richtig ich habe dann mit debian 11 ein Img erstellt und es auf einer zweiten sd karte zu kopieren das hat auch alles geklappt.
                  ich will bei der orginalen sd karte nichts verändern deswegen die Kopie
                  ich wollte dann einfach über debian die datei index.js berabeiten aber wie ich oben beschrieben habe geht es nicht.
                  auch unter Windows mit 7zip hab ich es probiert das gleiche leider.
                  kann ich unter debian mit deiner Anleitung arbeiten

                  danke

                  Kommentar


                    #10
                    Nur zur info das Passwort zum Einsteigen im Respi weiß ich nicht da es ein orginal teil von Dimplex ist alle Standard Passwörter habe ich über Putty probiert ohne Erfolg

                    Kommentar


                      #11
                      Was meinst Du damit: "unter debian". Ist das eine dritte SD-Karte? Natürlich kannst Du auch dort nach der Anleitung arbeiten, vorausgesetzt, sudo ist installiert. Falls das nicht der Fall ist, kannst Du entweder sudo nachinstallieren oder Dich als User root anmelden und die Bearbeitung direkt erledigen.
                      Ist sudo nicht installiert, musst Du Dich natürlich auch als User root anmelden, um es zu installieren:
                      Code:
                      su -
                      Das Passwort ist nun das vom User root.
                      ACHTUNG! Es gibt sehr gute Gründe, warum man gewöhnlich nicht als User root angemeldet ist, root hat extrem weitreichende Rechte und kann sich notfalls fehlende Rechte verschaffen. Letztlich bist Du "Gott" auf dem System und niemand wird Dich daran hindern, Unsinn anzustellen, sei es, das Dateisystem zu löschen, sei es das Formatieren des aktiven Systemlaufwerks, sei es, Dateien umzubenennen, die Dich aus dem System aussperren... alles geht, es gibt (fast) keine Nachfragen.
                      Bist Du als root angemeldet, kannst Du mit
                      Code:
                      apt update
                      die Paketlisten aktualisieren und mit
                      Code:
                      apt install sudo
                      sudo nachinstallieren. Dann musst Du noch den normalen User der Gruppe sudo zuweisen
                      Code:
                      adduser derusername sudo
                      Nach dem nächsten Anmelden des Users derusername darf dieser sudo mit seinem Passwort nutzen.

                      Unter Windows kannst Du nicht auf ext4 Partitionen zugreifen (es sei denn, Du installierst zusätzliche Software). Die Datei index.js befindet sich auf einer ext4 Partition. Unter Windows siehst Du nur die erste Partition des SD-Karte, diese wird als /boot/ in GNU/Linux eingebunden.

                      Kommentar


                        #12
                        Ich habe die Karte mit Debian Kopiert deswegen frage ich so.
                        bin leider nicht so weit drinn im linux leider
                        das Kopieren der Karte war nur eine Sicherung vom System und das ich es bearbeiten kann
                        hast du sonnst eine leichter idee für mich ausser dem debian.
                        wie gesagt ich habe leider keine zugang zum Raspberry ausser die Oberfläche was er anzeigt.
                        mit Putty weis ich leider keinen user

                        danke

                        Kommentar


                          #13
                          Na aber wenn Du die Karte mit debian kopiert hast, muss das debian ja irgendwo gelaufen sein.

                          Wenn Du als Grundlage das openHABian Image für den Raspberry verwendet hast (das ist das auf der offiziellen openHAB Website verlinkte Image), dann heißt der Standard User openhabian und das Passwort ebenfalls openhabian. Die Zugangsdaten per PuTTY:

                          Host Name (or IP address): Die IP Deines Raspberry (also die gleiche, über die Du auch die UI von openHAB erreichst)
                          Port: 22 (ist bereits ausgewählt)
                          Connection Type: ssh (ebenfalls bereits ausgewählt)

                          Der Rest, der sich über etliche Untermenüs verteilt, kann auf den voreingestellten Werten bleiben.

                          Wahlweise kannst Du Dich auch von der Eingabeaufforderung Deines Windows 10 oder 11 aus verbinden, mittels
                          Code:
                          ssh openhabian@ip.des.rasp.berry
                          wobei ip.des.rasp.berry natürlich durch die korrekte IP zu ersetzen ist.
                          Über PuTTY wirst Du zuerst nach dem User gefragt, bei ssh steht er schon im Befehl mit dabei, weil ssh sonst den angemeldeten User verwendet, welcher mit Sicherheit nicht openhabian heißt
                          In beiden Fällen wirst Du noch nach dem Passwort gefragt. Was für Windows User oft irritierend ist: Es erfolgt während der Eingabe des Passworts keinerlei Rückmeldung, es erscheint kein Sternchen, kein Leerzeichen, kein Blinken, nichts. Es sieht für jemanden, der das Terminal beobachtet einfach so aus, als würde exakt gar nichts eingegeben. Erst mit der Bestätigung über die Enter-Taste passiert auf dem Bildschirm wieder etwas. Dieses Verhalten ist beabsichtigt und lässt sich auch nicht ändern.

                          Der Zugang zur Shell ist enorm wichtig, das ist nicht optional. Es wäre z.B. auch der korrekte Weg, eine Sicherungskopie zu erstellen, dafür gibt es den Befehl
                          Code:
                          openhab-cli backup
                          welcher natürlich auch mit erweiterten Rechten ausgeführt werden muss (also mit vorangestelltem sudo...), dafür kann die Sicherung im laufenden Betrieb erfolgen, Du musst openHAB also nicht beenden.
                          Im Anschluss gibt es im Ordner $OPENHAB_USERDATA/backups/ eine zip-Datei mit allen relevanten Konfigurationsdaten Deines openHAB Systems (ausschließlich openHAB selbst betreffend, keinerlei Software anderer Hersteller)
                          Die zip-Datei ist gewöhnlich nur wenige MByte groß und lässt sich bequem z.B. per Samba Freigabe auf einen Rechner im Netzwerk kopieren (openHABian richtet Samba automatisch ein, Zugangsdaten - Du hast es erraten - user: openhabian Passwort: openhabian) Der betreffende Ordner heißt dann userdata\backups\.
                          Für das Zurückspielen eines Backups ist das dann allerdings der falsche Ordner, weil Du über die Freigabe dort keine Dateien speichern darfst. Aber das kommt eh erst, wenn Du es mal brauchst...
                          Zuletzt geändert von udo1toni; 11.04.2023, 03:06.

                          Kommentar


                            #14
                            Hy auf denn Raspi läuft nur das Wärmepumpen image von Dimplex das bekomm ich nirgends wo her deswegen muss ich die Dateien mit einem sub System bearbeiten.

                            Kommentar


                              #15
                              Ach so... ich bin völlig falsch abgebogen... Sorry dafür...

                              Ja, dann musst Du es halt über das externe Debian erledigen.
                              Wie hast Du Debian aufgesetzt? Wo läuft das Debian? Auf jeden Fall musst Du auch dort root Zugriff haben, ohne geht das nicht, mit, ist es easy.

                              Kommentar

                              Lädt...
                              X