Ankündigung

Einklappen
Keine Ankündigung bisher.

Vallox über RS485 an HS

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

    #16
    Hallo zusammen,
    ich habe mich nun intensiver mit SmarthomeNG beschäftigt und alles läuft wie gewünscht.
    Allerdings bekomme ich das Helios Plugin einfach nicht zum laufen. Ich habe mehrfach installiert aber lande immer beim selben Fehler...

    sh.log
    Code:
    2017-03-07  21:28:51 ERROR    Main         Plugin helios exception: module 'plugins.helios' has no attribute 'helios'
    Traceback (most recent call last):
      File "/usr/local/smarthome/lib/plugin.py", line 64, in __init__
        plugin_thread = PluginWrapper(smarthome, plugin, classname, classpath, args, instance)
      File "/usr/local/smarthome/lib/plugin.py", line 104, in __init__
        exec("self.plugin = {0}.{1}.__new__({0}.{1})".format(classpath, classname))
      File "<string>", line 1, in <module>
    AttributeError: module 'plugins.helios' has no attribute 'helios'
    
    2017-03-07  21:29:02 WARNING  ventilation.thermal_efficiency.efficiency Item ventilation.thermal_efficiency.efficiency: problem evaluating round((sh.ventilation.rs485._incoming_temp() - sh.ventilation.rs485._outside_temp()) / (sh.ventilation.rs485._inside_temp() - sh.ventilation.rs485._outside_temp()) * 100): division by zero
    Rufe ich das Plugin auf erhalte ich Werte
    Code:
    (#)~:$ cd /usr/local/smarthome/plugins/helios
    (#)/usr/local/smarthome/plugins/helios:$ python3 ./__init__.py
    exhaust_fan = 0
    bypass_disabled = 1
    incoming_temp = 19
    boost_setting = 0
    max_fanspeed = 8
    exhaust_temp = 7
    failure_notice = 0
    bypass_temp = 16
    fanspeed = 3
    boost_activate = 0
    clean_filter = 0
    boost_remaining = 0
    outside_temp = 4
    inside_temp = 23
    power_state = 1
    fresh_air_fan = 0
    min_fanspeed = 3
    boost_status = 0
    Im SmarthomeNG backend erhalte ich allerdings unter items >> ventilation.rs485 immer nur den Wert 0 .
    Unter Plugins kann ich Helios auch nicht finden.

    Es kann doch nicht sein, dass nur bei mir dieses Plugin nicht läuft?
    Kann mir bitte noch jemand einen Tipp geben. Ich weiß jetzt wirklich nicht mehr weiter.
    Zuletzt geändert von Megen; 07.03.2017, 21:56.

    Kommentar


      #17
      Die Werte beim manuellen Aufruf sehen plausibel aus.

      Den Fehler 'Division by zero' kannst Du ignorieren, den muss ich noch abfangen (Aufrufreihenfolge der Items falsch). Ab dem zweiten Durchlauf ist alles ok, da das Item für die Variable (Divisor) dann einen Wert hat.

      Bleibt noch die Haupt-Fehlermeldung: AttributeError: module 'plugins.helios' has no attribute 'helios'

      Bist Du sicher, dass Du folgendes zur etc/plugins.conf hinzugefügt hast? (siehe hier):

      Code:
      [helios]
          class_name = Helios
          class_path = plugins.helios
          tty = /dev/ttyUSB0 # put your serial port here (usually /dev/ttyUSB0 or /dev/ttyAMA0)
          cycle = 60 # update interval in seconds; ex-default: 300
      /tom

      Kommentar


        #18
        Ich habe jetzt deinen Code genommen und es funktioniert

        Ich hatte vorher den Code aus der readme. Sehe eigentlich keinen Unterschied bis auf das Helios groß geschrieben ist.
        Kann das wirklich der Fehler gewesen sein?

        Wie auch immer. Vielen Dank für eure Hilfe und deine Geduld.

        Ich werd mich jetzt daran machen, die helios.conf zu editieren um diese vom Bus aus zu steuern.
        Danke euch
        Zuletzt geändert von Megen; 08.03.2017, 08:23.

        Kommentar


          #19
          Schön, viel Erfolg!

          Würde mich freuen, wenn Du am Schluss mal ein 'lebendes Beispiel' für die KNX-Anbindung posten könntest (Items-File) - ich würde das dann als kommentiertes Beispiel in die helios.conf mit aufnehmen, falls jemand zukünftig ebenfalls eine KNX-Anbindung machen will ...

          /tom

          Kommentar


            #20
            Das mache ich auf alle Fälle.
            Danke Tom

            Kommentar


              #21
              Die KNX-Anbindung klappt soweit schon recht gut allerdings gibt es doch kleine Probleme.


              1. Verstelle ich beispielsweise die Lüfterstufe am Bedienteil, dann bekomme ich über knx_send eine Rückmeldung.
              Verstelle ich die Lüfterstufe allerdings über knx_listen dann bekomme ich keine Rückmeldung über knx_send von der Anlage.

              2. Beim zuschalten der Anlage über KNX (power_state) bleibt das Bedienteil aus. Ich glaube das ist auch schon bekannt. Hat es irgendwelche Nachteile wenn das Bedienteil nicht in Betrieb ist?

              3. Die Stoßlüften-Funktion läuft bei mir immer für 45 min. Ich wollte diese verstellen indem ich den boost_mode = 2 und boost_time = 30 stelle. Leider läuft die Zeit immernoch 45 min lang.

              Code:
              [[logics_settings]]    # sh.py/logics/helios_logics.py - Booster ("Stoßlüftung") settings
                  # ============================================================================================ #
              
                      [[[boost_mode]]]   # 1=Helios default, 2=Logic with fixed values, 3=Logic (interactive Popup)
                          name = Setting for booster
                          type = num
                          value = 2
                          visu_acl = r
              
                      [[[boost_fanspeed]]]
                          name = Setting for booster - speed for logic with fixed values (only for boost_mode 2)
                          type = num
                          value = 8
                          visu_acl = r
              
                      [[[boost_time]]]
                          name = Setting for booster - duration for logic with fixed values (only for boost_mode 2)
                          type = num
                          # value = 2700   # 45 minutes * 60 seconds = 2700 seconds
                          value = 30
                          visu_acl = r
              
              
                     [[rs485]]              # Connectors to the plugin values
                  # ============================================================================================ #
              
                      [[[_power_state]]]        #schalten funktioniert, Rückmeldung nur wenn über BT geschaltet, beim Einschalten bleibt BT aus
                          name = Anlage an / aus
                          type = num
                          helios_var = power_state
                          visu_acl = rw
                          knx_dpt = 5
                          knx_send = 0/3/18
                          knx_listen = 0/3/3
              
                      [[[_bypass_disabled]]]     #schalten funktioniert, Rückmeldung nur wenn über BT geschaltet
                          name = Sommerbypass an / aus
                          type = num
                          helios_var = bypass_disabled
                          visu_acl = rw
                          knx_dpt = 5
                          knx_send = 0/3/19
                          knx_listen = 0/3/14
              
                      [[[_bypass_setpoint]]]     #läuft perfekt
                          name = Temperatur für automatische Umschaltung des Sommerbypasses
                          type = num
                          helios_var = bypass_temp
                          visu_acl = r
                          knx_dpt = 5
                          knx_send = 0/3/13
              
                      [[[_outside_temp]]]        #läuft perfekt
                          name = DIN/EN: Außenluft, outdoor air / ODA, grün; Luft von draussen
                          type = num
                          helios_var = outside_temp
                          visu_acl = r
                          sqlite = yes    
                          # rrd = yes
                          # rrd_min = yes
                          # rrd_max = yes
                          knx_dpt = 5
                          knx_send = 0/3/5
              
                          # Achtung: Bei starkem Frost wird der Zuluftventilator automatisch gestoppt.
                          # In diesem Fall weicht die 'outside_temp' von der tatsächlichen Außentemperatur
                          # stark ab, da keine Frischluft mehr in die Anlage geführt wird.
                          # (Erwärmung des WT Anlage durch die Raumtemperatur sowie durch die ggf. gerade
                          # abkühlende Vorheizung verfälschen dann die Werte)
              
                      [[[_incoming_temp]]]         #läuft perfekt
                          name = DIN/EN: Zuluft, supply air / SUP, blau; Luft in die Räume
                          type = num
                          helios_var = incoming_temp
                          visu_acl = r
                          sqlite = yes    
                          # rrd = yes
                          # rrd_min = yes
                          # rrd_max = yes
                          knx_dpt = 5
                          knx_send = 0/3/6
              
                      [[[_inside_temp]]]           #läuft perfekt
                          name = DIN/EN: Abluft, extract air / ETA, gelb; Luft aus den Räumen
                          type = num
                          cache = true # schmeisst sonst beim Start Fehler div/0 bei Berechnungen
                          helios_var = inside_temp
                          visu_acl = r
                          sqlite = yes    
                          # rrd = yes
                          # rrd_min = yes
                          # rrd_max = yes
                          knx_dpt = 5
                          knx_send = 0/3/7
              
                      [[[_exhaust_temp]]]          #läuft perfekt
                          name = DIN/EN: Fortluft, exhaust air, braun; Luft nach draussen
                          type = num
                          helios_var = exhaust_temp
                          visu_acl = r
                          sqlite = yes    
                          # rrd = yes
                          # rrd_min = yes
                          # rrd_max = yes
                          knx_dpt = 5
                          knx_send = 0/3/8
              
                      [[[_heating_on_off]]]        # keine Funktion
                          name = Vorheizung ein
                          type = num
                          visu_acl = rw
                          helios_var = heating_on_off
                          sqlite = yes    
                          # rrd = yes
                          # rrd_min = yes
                          # rrd_max = yes
                          knx_dpt = 5
                          knx_send = 0/3/21
                          knx_listen = 0/3/22
              
                      [[[_heating_setpoint]]]       #läuft perfekt
                          name = Einschalttemperatur Vorheizung
                          type = num
                          visu_acl = rw
                          helios_var = heating_setpoint
                          knx_dpt = 5
                          knx_send = 0/3/23
              
                      [[[_frost_setpoint]]]
                          name = Frostschutztemperatur - Zuluft aus unter dieser Temperatur
                          type = num
                          visu_acl = rw
                          helios_var = frost_stop
              
                      [[[_frost_hysteresis]]]
                          name = Hysteresetemperatur Frostschutz, 0x03 ~ 1°C
                          type = num
                          visu_acl = rw
                          helios_var = cell_defrost
              
                      [[[_min_fanspeed]]]
                          name = Lüftungerstufe min (EC300Pro: 1..8)
                          type = num
                          helios_var = min_fanspeed
                          visu_acl = rw
              
                      [[[_max_fanspeed]]]
                          name = Lüftersufe max (EC300Pro: 1..8)
                          type = num
                          helios_var = max_fanspeed
                          visu_acl = rw
              
                      [[[_fanspeed]]]           #schalten funktioniert, Rückmeldung nur wenn über BT geschaltet
                          name = Aktuelle Lüftungsstufe (EC300Pro: 1..8)
                          type = num
                          helios_var = fanspeed
                          visu_acl = rw
                          sqlite = yes    
                          # rrd = yes
                          # rrd_min = yes
                          # rrd_max = yes
                          knx_dpt = 5
                          knx_send = 0/3/0
                          knx_listen = 0/3/20
              
                      [[[_fan_in_on_off]]]
                          name = Ausschaltregister (1=aus); u.a. vom Frostschutz benutzt; ggf zweifach beschreiben
                          type = num
                          helios_var = fan_in_on_off
                          visu_acl = rw
              
                      [[[_fan_in_percent]]]
                          name = Stellwert für Motordrehzahl Zuluft in %
                          type = num
                          helios_var = fan_in_percent
                          visu_acl = rw
                          sqlite = yes    
                          # rrd = yes
                          # rrd_min = yes
                          # rrd_max = yes
              
                      [[[_fan_out_on_off]]]
                          name = Ausschaltregister (1=aus); ggf zweifach beschreiben
                          type = num
                          helios_var = fan_out_on_off
                          visu_acl = rw
              
                      [[[_fan_out_percent]]]
                          name = Stellwert für Motordrehzahl Abluft in %
                          type = num
                          helios_var = fan_out_percent
                          visu_acl = rw
                          sqlite = yes    
                          # rrd = yes
                          # rrd_min = yes
                          # rrd_max = yes
              
                      [[[_boost_on]]]           # läuft für 45 min aber kann ich nicht ändern obwohl boost_mode =2 und boost_time =30
                          name = Stoßlüftung ein (Anlage setzt selbstständig zurück)
                          type = bool
                          helios_var = boost_on
                          visu_acl = rw
                          knx_dpt = 1
                          knx_listen = 0/3/12
              
              
                      [[[_boost_mode]]]
                          name = Grundeinstellung: 0=Kaminlüftung ("Anheizen"), 1=Stoßlüftung
                          type = num
                          helios_var = boost_mode
                          visu_acl = rw
              
                      [[[_boost_status]]]       # läuft perfekt
                          name = Aktueller Status
                          type = bool
                          helios_var = boost_status
                          visu_acl = r
                          knx_dpt = 5
                          knx_send = 0/3/16
              
                      [[[_boost_remaining]]]    # läuft perfekt
                          name = Verbleibende Minuten bei aktivierter Stoßlüftung
                          type = num
                          helios_var = boost_remaining
                          visu_acl = r
                          knx_dpt = 5
                          knx_send = 0/3/11
              
                      [[[_clean_filter]]]       # läuft perfekt
                          name = Verbleibende Zeit für Filterreinigung in Monaten
                          type = num
                          helios_var = clean_filter
                          visu_acl = rw
                          knx_dpt = 5
                          knx_send = 0/3/15
              
                      [[[_device_error]]]
                          name = Aus der KWL ausgelesener Fehlercode
                          type = num
                          helios_var = device_error
                          visu_acl = r
                          e0  = "0:Kein Fehler:Kein Fehlertext:Keine Fehlerbehebung" # Format = ErrNo:Name:Description:Countermeasures
                          e1  = "1:?:?:?"
                          e2  = "2:?:?:?"
                          e3  = "3:?:?:?"
                          e4  = "4:?:?:?"
                          e5  = "5:Zuluftsensor  defekt:Fühler lose, Kurzschluss <br/>oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken"
                          e6  = "6:CO2-Alarm:CO2-Wert >5.000 ppm seit mehr als 3 Minuten:Ursache ermitteln oder ggf. Sensor überprüfen lassen."
                          e7  = "7:Außenluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken"
                          e8  = "8:Abluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken"
                          e9  = "9:Frostwarnung:Außenluft <0°C und Zuluft <8°C - Frostgefahr am Wärmetauscher:Der Alarm verschwindet automatisch bei normalisierten Temperaturen"
                          e10 = "10:Fortluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken"
                          knx_dpt = 5
                          knx_send = 0/3/4

              nochmals vielen Dank für dieses Plugin. Es macht richtig Spaß damit zu arbeiten.

              Gruß Michael

              Kommentar


                #22
                Prima, vielen Dank für die Rückmeldung!

                Zitat von Megen Beitrag anzeigen
                1. Verstelle ich beispielsweise die Lüfterstufe am Bedienteil, dann bekomme ich über knx_send eine Rückmeldung.
                Verstelle ich die Lüfterstufe allerdings über knx_listen dann bekomme ich keine Rückmeldung über knx_send von der Anlage.
                Da müsste Dir jemand mit KNX-Erfahrung helfen, ist (leider) nicht meine Baustelle ...

                Zitat von Megen Beitrag anzeigen
                2. Beim zuschalten der Anlage über KNX (power_state) bleibt das Bedienteil aus. Ich glaube das ist auch schon bekannt. Hat es irgendwelche Nachteile wenn das Bedienteil nicht in Betrieb ist?
                Ja, das Bedienteil bleibt leider aus. Einziger Nachteil (außer dem dunklen Display): Schaltest Du das Bedienteil von Hand nachträglich ein, wird die Anlage auf Grundstufe (bei Dir war es glaube ich "3") zurückgesetzt.

                Wir haben bis jetzt den notwendigen (Zusatz-)Steuerbefehl noch nicht herausgefunden, um das Bedienteil mit der Anlage einzuschalten (sofern es überhaupt einen gibt). Da auch mehrere Fernbedienungen angeschlossen werden können, exisitiert er aber vermutlich - ich kann mir nicht vorstellen, dass das Anlagendesign vorsieht, dass man alle FB's von Hand einzeln dazuschalten muss.

                Zitat von Megen Beitrag anzeigen
                3. Die Stoßlüften-Funktion läuft bei mir immer für 45 min. Ich wollte diese verstellen indem ich den boost_mode = 2 und boost_time = 30 stelle. Leider läuft die Zeit immernoch 45 min lang.
                Das liegt daran, dass Du den Einschalter mit rs485._boost_on "verdrahtet" hast. Dies triggert immer "hart" den in der Firmware eingebauten Boost der Anlage, der unveränderlich auf 45 Minuten eingestellt ist.

                Die über Items einstellbaren Zeiten werden nur dann aktiv, wenn die zusätzlich programmierte Logik für smartHomeNG die Kontrolle hat. Diese schaltet dann auf die gewünschte Stufe und nach der eingestellten Zeit wieder zurück. Der in der Anlage befindliche "Firmware-Boost" wird dabei vollständig umgangen.

                Wenn ich mich richtig erinnere, müsstest Du statt rs485._boost_on das Item booster.logics.switch für die KNX-Anbindung verwenden (müsste dafür nochmal im smartVisu-Widget nachsehen, was da verwendet wird).

                Anmerkung am Rande: Da die nächste Version von smartHomeNG deutlich erweiterte Möglichkeiten bietet, werde ich die Boost-Schaltung demnächst nochmal gründlich überarbeiten.

                Zitat von Megen Beitrag anzeigen
                nochmals vielen Dank für dieses Plugin. Es macht richtig Spaß damit zu arbeiten.
                Gerne doch - ist ja auch noch nicht fertig, ein paar Dinge hab ich noch in der Pipeline.

                /tom

                Kommentar


                  #23
                  Hallo Zusammen,

                  ich würde gerne ein alte Vallox 130D per RS485 an smarthome.py anbinden. Mein erstes Problem ist, dass der Raumcontroller nicht mehr vorhanden ist und die Kabel einfach gekappt wurden, ich kann also die Adern nicht zuordnen. Kann mir ggf. jeman helfen und sagen, welche Farben wo enden.
                  Meiner Recherche nach solllte es geben:
                  RS 485 A
                  RS 485 B
                  RS 485 GND

                  RH1 S
                  RH1 +

                  RH2 S
                  RH2 +

                  als Adernfarben hätte ich im Angebot:
                  grün
                  gelb

                  blau
                  rot

                  rosa
                  grau

                  braun
                  weiß


                  vielen Dank!
                  Zuletzt geändert von Marcov; 02.12.2017, 19:18.

                  Kommentar


                    #24
                    Ohne Gewähr - schau mal z.B. hier. Meines Wissens werden die CO2-Sensoren auch nur über den Bus angebunden.
                    Miss aber sicherheitshalber vorher die Spannung, bevor Du aus Versehen 21V auf RS485 A/B loslässt ...
                    /tom

                    Kommentar


                      #25
                      Hi danke - da ist aber nur beschrieben, wie der CO2 Sensor im Verteiler angeschlossen wird, ich muss aber wissen, wie die Regelung an den Verteiler anzuschließen ist.

                      Kommentar


                        #26
                        Bist Du sicher, dass das die Anlage mit Bus ist, und keine von den Analogen? Die im Edit genannten Farben sind irgendwie komisch.

                        Wenn ja: Angeblich ist Helios ja baugleich (siehe z.B. hier). Oder haben die das Kabel zwischen Anlage und Klemmkasten gekappt? Aber dann dürfte das ganze Ding IMHO gar nicht mehr vernünftig laufen ...

                        /tom

                        Kommentar


                          #27
                          Ja - sie haben das Kabel zwischen Anlage und Klemmkasten gekappt....
                          Laut mir vorliegender Beschreibung hat sie einen RS485 Bus, ich frage mal bei Heinemann / Vallox nach. Ich finde nur den Schaltplan für die Digit SE, die hat aber 12 Adern:
                          digit_se.JPG


                          bei mir fehlt also schwarz, grau/rosa und violett, das ist für den Kaminschalter und die 0-10V Steuerung, über den die 130D meiner Recherche nach auch nicht verfügt... Demnach müssten grün/gelb A/B sein.

                          Welchen USB RS485 Adapter würdet ihr empfehlen, reicht A/B, ich habe auch Adapter mit GND gesehen.
                          Angehängte Dateien

                          Kommentar


                            #28
                            Ich hab hier nen Digitus mit A/B ohne extra Masse stabil seit Jahren am Laufen. Werde aber demnächst auf sowas ähnliches hier umziehen - dann kann der Pi an der Anlage weg (Netz liegt eh da), und die Abfragen kommen direkt aus dem zentralen shNG auf dem NAS.
                            /tom

                            Kommentar


                              #29
                              Hi,

                              Ich kann mir ohne Probleme noch ein Kabel vom Beaglebone zur Anlage ziehen und habe am USB-HUB noch genug freie Ports. Habe mir einen bei Ebay bestellt und werde berichten, sobald er hier ist und ich es getestet habe

                              Kommentar

                              Lädt...
                              X