Ankündigung

Einklappen
Keine Ankündigung bisher.

Brunner EOS 7 mit BHZ 3 an KNX anbinden

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

    #46
    Also meiner Meinung nach ist der generierte Code eher weniger zu gebrauchen. Da würde ich dann ne Lösung über ne gescheite Datenstruktur favorisieren.
    Für jede ID 4 eigene Funktionen ist schon mehr als unsauber .

    Daher denke ich mittlerweile, dass die DBC Files eher nicht so gut zu gebrauchen sind. Da ist die CSV schon deutlich besser und lesbarer.
    Das CSV einlesen und einfach nach der ID suchen, dann evtl. noch das Zahlenformat übergeben und in einer Funktion aufbereiten.

    Bin auch wieder leicht von der C/C++ Lösung weg, da mein Arduino nano dann natürlich das Problem hat, dass er keine Netzwerkschnittstelle hat und er dann ohne Raspi nichts ins Netzwerk schicken kann. Ließe sich vielleicht über einen ESP32 lösen, aber ich bin auch kein Fan von WLAN für "kritische Infrastruktur" .
    Dazu kommt dann, dass python ja trotzdem wunderbar rennt und die serielle Schnittstelle gut bedienen kann.

    Im Endeffekt würde ich zum aktuellen Stand nur das python script "schön" machen.

    Oder hast du noch eine Idee, gerade was den Arduino angeht?

    Kommentar


      #47
      Wie gesagt: Das Python-Script basiert ebenfalls auf DBC. Ich würde das auch auf keinen Fall fallen lassen, da Brunner CAN nicht wirklich verstanden zu haben scheint. D.h. für die EOS7 und BHZ3 ist CAN nur sehr rudimentär eingesetzt. So gibt es pro CAN-Message nur ein einziges Signal. Ausserdem haben die eine sehr komische Kodierung für negative Zahlen, die per DBC zum Glück auch automatisch gerade zu ziehen ist.

      dbcc, also die C-Generierung, können wir gerne sein lassen.

      Was passiert denn bei dir, wenn du versuchst das can2mqtt in betrieb zu nehmen? Gibt es irgend einen Fehler? Wenn ja welchen?

      Grundsätzlich läuft das ja so:
      1. can2mqtt irgendwo auf den can-fähigen rechner kopieren: https://github.com/tillsc/can2mqtt/a...ads/master.zip
      2. Die DBC-Files in das gleiche Verzeichnis kopieren
      3. Die config.example.yaml​ in config.yaml​ umbenennen und die Einstellungen darin richtig setzen
      4. python3 main.py ausführen
      Jetzt sollten die Nachrichten von der Brunner in deinem MQTT auftauchen. Wie gesagt: Die Rück-Richtung baue ich gerne fertig, wenn Bedarf besteht und der Ansatz grundsätzlich für irgendwen ausser mir interessant ist.

      Kommentar


        #48
        Wenn ihr die Daten direkt auf KNX schicken wollt, könnt ihr ja mal bei den Jungs von openknx vorbeischauen

        Kommentar


          #49
          Eventuell helfen euch diese Threads weiter:

          https://knx-user-forum.de/forum/%C3%...leda-spartherm

          https://knx-user-forum.de/forum/%C3%...schmid-smr-etc
          Gruß Pierre

          Mein Bau: Sanierung

          DIY-Bastelprojekte: KNX-Statusdisplay/|\KNX-Tankmonitor(Füllstandsamessung)

          Kommentar


            #50
            So, bin gerade dabei meinen Server umzubauen... Edomi fliegt langsam aber sicher raus, daher die letzte Zeit weniger von mir. Jetzt ist erst mal alles gesichert und gedoppelt, jetzt kann ich mich wieder um Brunner kümmern. Die Daten müssen nämlich auch migriert werden.

            Ich muss zugeben, dass ich die DBC files nicht wirklich verstehe. Muss mich vielleicht mal etwas intensiver einlesen. Rein vom ersten Blick, finde ich sie schwer zu parsen, da ist ein csv file schon deutlich einfacher.

            Ich nutze bei mir kein mqtt.
            Das python Script sendet per remote API die Daten an die Edomi, die sie speichert und wenn nötig an den KNX Bus weiterleitet.

            Aber stoepf hat recht, man könnte den Arduino auch einfach direkt an den Bus hängen. Ich hab sogar noch nen Busankoppler hier. Aber das wird ein größeres Projekt, da die bisherigen Tempsensoren, die an den Bus senden eher schlecht programmiert sind, will ichs diesmal gescheit machen. Also erst das python Script umbauen.

            Kommentar


              #51
              Dank der tollen Vorarbeit habe ich mich jetzt auch an das Thema gewagt. Vielen Dank dafür die Daten und Tools offen zur Verfügung zu stellen!

              Ich habe zum Auslesen einen Raspberry Pi 4B und den 2-CH CAN HAT+ von Waveshare ( https://www.waveshare.com/wiki/2-CH_CAN_HAT+ ) gewählt. Stromversorgung erfolgt direkt über die 24V Versorgungsleitung der BHZ. Nach kleineren Startschwierigkeiten läuft das nun.

              Ich hatte mich gegen die BSH entschieden, da diese aktuell nur eine sehr eingeschränkte Menge an Signalen rausgibt (z.B. keine Volumenströme). Brunner hat das auf meine Anfrage hin mal in die Wunschliste aufgenommen. Mal schauen, ob sich da in absehbarer Zeit etwas tut. Sollte ja eigentlich für Brunner nicht so schwer sein.

              Neben BHZ3 und EOS habe ich noch eine BWP 9 green (ehemals BWP 9 4/14 green) Wärmepumpe im Einsatz und in einem ersten Test tauchen bei mir 892 verschiedene Arbitrierungs IDs auf (82 sind über die DBC files bislang erfasst). Da gibt es noch einiges zu Entziffern...
              Ich hatte zuvor schon angefangen die Service-Logs zu analysieren, die man sich vom Display auf einen USB-Stick kopieren kann, das wird sicherlich hilfreich sein. Ansonsten sind mir bzgl. der Leistungsmessung auch schon einige Ungereimtheiten aufgefallen und auch die Steuerung der Wärmepumpe bzw. Puffer-Beladung scheint mir teilweise nicht ganz optimal zu sein. Mal schauen, ob Brunner hier offen für Anregungen ist...

              Mit dem Senden von Werten war ich bislang leider noch nicht erfolgreich.
              Zuletzt geändert von TobiasBW; 06.10.2024, 13:13.

              Kommentar


                #52
                Hallo in die Runde! Das sieht ja alles sehr vielversprechend aus. Leider bekomme ich es bis jetzt nicht zu Laufen.

                @TobiasBW: Was waren deinen kleineren Startschwierigkeiten und wie hast du sie gelöst?

                Bei mir hakt es ziehmlich.
                Erst habe ich es auf einem aktuellen Raspbian (bookworm) versucht. Hier ging
                pip3 install paho-mqtt cantools
                ​ nicht. Irgenwas mit fremden Quelle oder so.

                Dann habe ich es mit einem alten Raspbian (buster) versucht. Hier hat die Installation soweit geklappt, beim Versuch es zu Starten bekomme ich aber immer:
                ValueError: Unsupported callback API version: version 2.0 added a callback_api_version
                .

                Hier habe ich dann in der main.py die Zeile 57 in
                mqtt_client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION1,'can2 mqtt')
                geändert. Und mqtt_client.connect habe ich auch in die bei mir passende Adresse geändert.
                Und jetzt bekommen ich
                OSError: [Errno 97] Address family not supported by protocol
                Hat jemand eine Idee, wie ich hier weiterkommen könnte?


                Kommentar


                  #53
                  Inzwischen läuft es bei mir.

                  Ich habe folgendes gemacht:

                  Ich habe auf einem Raspberry Pi 3b das Raspberry Pi OS bullseye installiert.
                  Als CANbus-Hardware verwende ich den RS485 CAN HAT (B). Diesen habe ich nach Herstellerabgeben Installiert (nur die can bitrate nicht auf 1000000 gelassen, sonder auf 125000 gestellen).
                  Bei can2mqtt von tillsc habe ich entsprechndend dem issue zu Python 3.9 in der main.py Zeile 10 auf
                  config = yaml.safe_load(stream)
                  und in Zeile 64 auf
                  with open (file, 'r', encoding='utf-8') as fin:
                  angepasst.
                  Dann habe ich noch die Zeile 57 auf
                  mqtt_client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION1,'can2 mqtt')
                  und die Zeile 59 auf
                  mqtt_client.connect(host=config['mqtt']['host'])
                  und in Zeile 60
                  bustype durch interface ersetzt.

                  Vielen Dank für die tolle Vorarbeit.


                  Für mich ist nun die eigentliche Herausvorderung, dass ich meine Heizkreise über mqtt ein bzw. ausschalten kann.

                  Hat schon jemand die Steurung über mqtt realisiert? Ich bin brennend interessiert ;-).
                  Zuletzt geändert von MaAuWi; 31.10.2024, 11:43.

                  Kommentar

                  Lädt...
                  X