« Elektrotechnik & Smarthome  |

Nibe S1155 Modbus in Openhab auslesen

Teilen: facebook    whatsapp    email
  •  MartinSt
  •   Gold-Award
18.3. - 20.6.2023
3 Antworten 3
3
Hallo Zusammen,

ich scheitere aktuell daran die Daten der S1155 über Modbus in Openhab 3 auszulesen.
In NodeRed läuft das bereits aber nun will ich alles in Openhab zusammenziehen.

Was ich bis jetzt habe:
1. Modbus TCP Bridge angelegt:

UID: modbus:tcp:nibeTCP
label: Modbus TCP Nibe
thingTypeUID: modbus:tcp
configuration:
  rtuEncoded: false
  timeBetweenTransactionsMillis: 60
  connectMaxTries: 1
  reconnectAfterMillis: 0
  port: 502
  timeBetweenReconnectMillis: 0
  host: 192.168.178.202
  connectTimeoutMillis: 10000
  afterConnectionDelayMillis: 0
  id: 1
  enableDiscovery: false

2. Modbus Poller erstellt:
UID: modbus:poller:nibeTCP:ModbusRegister1
label: Aktuelle Außentemperatur
thingTypeUID: modbus:poller
configuration:
  start: 1
  length: 1
  refresh: 500
  maxTries: 3
  cacheMillis: 50
  type: input
bridgeUID: modbus:tcp:nibeTCP

Meine Fragen:
Wie schreib ich hier mehrere Register in den Code?
Die Länge definiert meines Verständnisses wieviele Register hintereinander gelesen werden, beginnend mit dem Startwert.
Aber wie schreibt man das jetzt in den Code damit man die als Item auch auslesen kann?
Und: Wie erstellt man die Items dazu?

Bitte um eure Hilfe! 

  •  wendl
20.6.2023  (#1)
Plage mich auch wiederkehrend mit Nibe/Modbus/Openhab3
hab das aktuell in thing / item files definiert.
Ich bin selbst nicht der OH-Experte und manche Register bekomme ich nicht ausgelesen. 


1
  •  wendl
20.6.2023  (#2)
nibe.things
 
Bridge modbus:tcp:nibe-s1155               "Nibe-S1155PC-Bridge"          [ host="192.168.xxx.yyy", port=502, timeBetweenTransactionsMillis=5000] {
    Bridge poller nibe-s1155_poll-temp_outside "Nibe-S1155PC-Poll-Temp_Aussen"          [ start=1, length=1, refresh=300000, type= "input" ] {
        Thing data nibe-s1155_poll-temp_outside_d "Nibe-S1155PC-Poll-Temp_Aussen_d"     [ readStart=1, readValueType="int16", readTransform= "JS(| input / 10)" ]
    }
    Bridge poller nibe-s1155_poll-temp_supply "Nibe-S1155PC-Poll-Temp_Heizung-VL"          [ start=12, length=1, refresh=10000, type= "input" ] {
        Thing data nibe-s1155_poll-temp_supply_d "Nibe-S1155PC-Poll-Temp_Heizung-VL_d"  [ readStart=12, readValueType="int16", readTransform= "JS(| input / 10)" ]
    }
    Bridge poller nibe-s1155_poll-avg_temp "Nibe-S1155PC-Poll-Mittlere_Temp"          [ start=37, length=1, refresh=10000, type= "input" ] {
        Thing data nibe-s1155_poll-avg_temp_d "Nibe-S1155PC-Poll-Mittlere_Temp_d"  [ readStart=37, readValueType="int16", readTransform= "JS(| input / 10)" ]
    }
    Bridge poller nibe-s1155_poll-temp_supply_target "Nibe-S1155PC-Poll_Temp_Heizung-VL-Ziel"          [ start=1017, length=1, refresh=60000, type= "input"   ] {
        Thing data  nibe-s1155_poll-temp_supply_target_d     "Nibe-S1155PC-Poll_Temp_Heizung-VL-Ziel_d"  [ readStart=1017,   readValueType="int16", readTransform= "JS(| input / 10)"]
    }

    Bridge poller nibe-s1155_poll-temp "Nibe-S1155PC-Poll-Temp"          [ start=7, length=6, refresh=60000, type= "input" ] {
        Thing data nibe-s1155_poll-temp_return_d "Nibe-S1155PC-Poll-Temp_Heizung-RL_d"  [ readStart=7, readValueType="int16", readTransform= "JS(| input / 10)" ]
        Thing data nibe-s1155_poll-temp_water_d "Nibe-S1155PC-Poll-Temp_Wasser-Oben_d"  [ readStart=8, readValueType="int16", readTransform= "JS(| input / 10)" ]
        Thing data nibe-s1155_poll-temp_water-prod_d "Nibe-S1155PC-Poll-Temp_Wasser-Unten_d"  [ readStart=9, readValueType="int16", readTransform= "JS(| input / 10)" ]
        Thing data nibe-s1155_poll-temp_sole-in_d "Nibe-S1155PC-Poll-Temp_RGK-VL_d"  [ readStart=10, readValueType="int16", readTransform= "JS(| input / 10)" ]
        Thing data nibe-s1155_poll-temp_sole-out_d "Nibe-S1155PC-Poll-Temp_RGK-RL_d"  [ readStart=11, readValueType="int16", readTransform= "JS(| input / 10)" ]
        Thing data nibe-s1155_poll-temp_condesat_d "Nibe-S1155PC-Poll-Temp_Kondensat_d"  [ readStart=12, readValueType="int16", readTransform= "JS(| input / 10)" ]
    }

    Bridge poller nibe-s1155_poll-volumenstrom "Nibe-S1155PC-Poll_Volumenstrom"          [ start=40, length=1, refresh=60000, type= "input" ] {
        Thing data nibe-s1155_poll-volumenstrom_d "Nibe-S1155PC-Poll_Volumenstrom_d"  [ readStart=40, readValueType="int16", readTransform= "JS(| input / 10)" ]
    }

    Bridge poller nibe-s1155_poll-comp-freq "Nibe-S1155PC-Poll_Comp-Freq"          [ start=1046, length=3, refresh=60000, type= "input" ] {
        Thing data nibe-s1155_poll-comp-freq_d "Nibe-S1155PC-Poll_Comp-Freq_d"  [ readStart=1046, readValueType="uint16", readTransform= "JS(| input / 10)" ]
        Thing data nibe-s1155_poll-comp-temp_d "Nibe-S1155PC-Poll_Comp-Temp_d"  [ readStart=1047, readValueType="int16", readTransform= "JS(| input / 10)" ]
        Thing data nibe-s1155_poll-comp-power_d "Nibe-S1155PC-Poll_Comp-Power_d"  [ readStart=1048, readValueType="uint16"]  
    }
     Bridge poller nibe-s1155_poll-pump_heating "Nibe-S1155PC-Poll_Pump-Heating"          [ start=1532, length=4, refresh=60000, type= "input" ] {
        Thing data nibe-s1155_poll-pump_heating_d "Nibe-S1155PC-Poll_Pump-Heating_d"  [ readStart=1532, readValueType="int16", readTransform= "JS(| input / 1)" ]
    }
     Bridge poller nibe-s1155_poll-pump_sole "Nibe-S1155PC-Poll_Pump-Sole"          [ start=1533, length=4, refresh=60000, type= "input" ] {
        Thing data nibe-s1155_poll-pump_sole_d "Nibe-S1155PC-Poll_Pump-Sole_d"  [ readStart=1533, readValueType="int16", readTransform= "JS(| input / 1)" ]
    }
    Bridge poller nibe-s1155_poll-water_heating "Nibe-S1155PC-Poll_Water-Heating"          [ start=697, length=1, refresh=60000, type= "holding" ] {
        Thing data  nibe-s1155_poll-water_heating_d "Nibe-S1155PC-Poll_Water-Heating_d"  [ readStart=697, readValueType="int16", writeStart=697, writeValueType="int16",  writeType="holding"]
    }

     Bridge poller nibe-s1155_poll-verdichter-starts "Nibe-S1155PC-Poll_Verdichterstarts"          [ start=1083, length=2, refresh=600000, type= "input"  ] {
        Thing data  nibe-s1155_poll-verdichter-starts_d  "Nibe-S1155PC-Poll_Verdichterstarts_d"  [ readStart=1083,  readValueType="int16",  readTransform= "JS(| input / 1)"]
    }

    Bridge poller nibe-s1155_poll-heizkurve "Nibe-S1155PC-Poll_Heizkurve"          [ start=30, length=1, refresh=60000, type= "holding"  ] {
        Thing data  nibe-s1155_poll-heizkurve_d  "Nibe-S1155PC-Poll_Heizkurve_d"  [ readStart=30,  readValueType="int16",  writeStart=30, writeValueType="int16",  writeType="holding"]
    }

    Bridge poller nibe-s1155_poll-kuelkurve "Nibe-S1155PC-Poll_Kuelkurve"          [ start=975, length=1, refresh=60000, type= "holding"  ] {
        Thing data  nibe-s1155_poll-kuelkurve_d  "Nibe-S1155PC-Poll_Kuelkurve_d"  [ readStart=975,  readValueType="int16",  writeStart=975, writeValueType="int16",  writeType="holding"]
    }

    Bridge poller nibe-s1155_poll-gradminuten "Nibe-S1155PC-Poll_Gradminuten"          [ start=11, length=2, refresh=60000, type= "holding"  ] {
        Thing data  nibe-s1155_poll-gradminuten_d    "Nibe-S1155PC-Poll_Gradminuten_d"  [ readStart=11,  readValueType="int16", readTransform= "JS(| input / 10)", writeStart=11, writeValueType="int16",  writeType="holding", writeTransform= "JS(| input * 10)" ]
    }
/*
    Bridge poller nibe-s1155_poll-cooling "Nibe-S1155PC-Poll_Kühlung"          [ start=1019, length=2, refresh=60000, type= "input"   ] {
        Thing data  nibe-s1155_poll-cooling_d    "Nibe-S1155PC-Poll_Kühlung_d"  [ readStart=1019,  readValueType="uint16"]
    }
*/
    Bridge poller nibe-s1155_poll-prio "Nibe-S1155PC-Poll_Prio"          [ start=1028, length=2, refresh=60000, type= "input"   ] {
        Thing data  nibe-s1155_poll-prio_d   "Nibe-S1155PC-Poll_Prio_d"  [ readStart=1028,  readValueType="uint16"]
    }

    Bridge poller nibe-s1155_poll-mode "Nibe-S1155PC-Poll_Mode"          [ start=237, length=1, refresh=60000, type= "holding"   ] {
        Thing data  nibe-s1155_poll-mode_d   "Nibe-S1155PC-Poll_Mode_d"  [ readStart=237,  readValueType="uint8", writeStart=237, writeValueType="uint8",  writeType="holding"]
    }
/*
    Bridge poller nibe-s1155_poll-status "Nibe-S1155PC-Poll_Status"          [ start=1120, length=8, refresh=60000, type= "input"   ] {
        Thing data  nibe-s1155_poll-status_d     "Nibe-S1155PC-Poll_Status_d"  [ readStart=1120,  readValueType="uint32"]
    }*/

      Bridge poller nibe-s1155_poll-el_pow "Nibe-S1155PC-Poll_ElPower"          [ start=2166, length=2, refresh=60000, type= "input"   ] {
        Thing data  nibe-s1155_poll-el_pow_d     "Nibe-S1155PC-Poll_ElPower_d"  [ readStart=2166,  readValueType="uint32"]
    }

}



1
  •  wendl
20.6.2023  (#3)
nibe.items

Group NibeS1155                 "Nibe-S1155PC"                                  (Technik)

Group nibe_Sole                 "Nibe-S1155PC Sole"         <garden>            (NibeS1155) ["Equipment"]
Group nibe_Heizung              "Nibe-S1155PC Heizung"      <radiator>          (NibeS1155) ["Equipment"]
Group nibe_Brauchwasser         "Nibe-S1155PC Brauchwasser" <water>             (NibeS1155) ["Equipment"]
Group nibe_HeizungsSteuerung    "Nibe-S1155PC Steuerung"    <qualityofservice>  (NibeS1155) ["Equipment"]
Group nibe_NibeS1155_Log        "Nibe-S1155PC Log"          <text>                    (NibeS1155) ["Equipment"]

Number nibe_SolePumpe               "Nibe-S1155PC Solepumpe [%.1f %%]"                      (Sole)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-pump_sole:nibe-s1155_poll-pump_sole_d:number" }
Number:Temperature nibe_SoleVL      "Nibe-S1155PC Sole VL VL [Vorlauf] [%.1f °C]"        <temperature>   (Sole)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-temp:nibe-s1155_poll-temp_sole-in_d:number" }
Number:Temperature nibe_SoleRL      "Nibe-S1155PC Sole RL RL [Rücklauf] [%.1f °C]"        <temperature>   (Sole)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-temp:nibe-s1155_poll-temp_sole-out_d:number" }
Number:Temperature nibe_Aussentemp  "Nibe-S1155PC Aussenfühler [%.1f °C]"   <temperature>   (Sole)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-temp_outside:nibe-s1155_poll-temp_outside_d:number" }
//Number:Temperature nibe_AvgTemp  "Nibe-S1155PC Mittlere Temperatur [%.1f °C]" <temperature> (Sole)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-temp:nibe-s1155_poll-avg_temp_d:number" }


Number nibe_VerdichterFreq  "Nibe-S1155PC Verdichter Frequenz [%.1f Hz]"                    (Heizung)    { channel="modbus:data:nibe-s1155:nibe-s1155_poll-comp-freq:nibe-s1155_poll-comp-freq_d:number" }
Number nibe_VerdichterTemp  "Nibe-S1155PC Verdichter Temperatur [%.1f °C]"  <temperature>   (Heizung)    { channel="modbus:data:nibe-s1155:nibe-s1155_poll-comp-freq:nibe-s1155_poll-comp-temp_d:number" }
Number nibe_VerdichterPow   "Nibe-S1155PC Verdichter Leistung [%.1f W]"                     (Heizung)    { channel="modbus:data:nibe-s1155:nibe-s1155_poll-comp-freq:nibe-s1155_poll-comp-power_d:number" }


Number nibe_HeizungPumpe            "Nibe-S1155PC Heizungspumpe [%.1f %%]"                      (Heizung)   { channel="modbus:data:nibe-s1155:nibe-s1155_poll-pump_heating:nibe-s1155_poll-pump_heating_d:number" }
Number nibe_Volumenstrom            "Nibe-S1155PC Volumenstrom [%.1f l/m]"                      (Heizung)   { channel="modbus:data:nibe-s1155:nibe-s1155_poll-volumenstrom:nibe-s1155_poll-volumenstrom_d:number" }
Number nibe_Gradminuten             "Nibe-S1155PC Gradminuten [%.1f GM]"                        (Heizung)   { channel="modbus:data:nibe-s1155:nibe-s1155_poll-gradminuten:nibe-s1155_poll-gradminuten_d:number" }
//Number nibe_Cooling                 "Nibe-S1155PC Kühlung [%.1f]"                               (Heizung)   { channel="modbus:data:nibe-s1155:nibe-s1155_poll-gradminuten:nibe-s1155_poll-cooling_d:number" }
Number nibe_Verdichterstarts        "Nibe-S1155PC Verdichterstarts [%i]"                        (Heizung)   { channel="modbus:data:nibe-s1155:nibe-s1155_poll-verdichter-starts:nibe-s1155_poll-verdichter-starts_d:number"}
Number:Temperature nibe_HeizungVL   "Nibe-S1155PC Heizung VL VL [Vorlauf] [%.1f °C]"         <temperature>   (Heizung)   { channel="modbus:data:nibe-s1155:nibe-s1155_poll-temp_supply:nibe-s1155_poll-temp_supply_d:number" }
Number:Temperature nibe_HeizungRL   "Nibe-S1155PC Heizung RL RL [Rücklauf] [%.1f °C]"         <temperature>   (Heizung)   { channel="modbus:data:nibe-s1155:nibe-s1155_poll-temp:nibe-s1155_poll-temp_return_d:number" }
Number:Temperature nibe_Kondensat   "Nibe-S1155PC Kondensatwächter [%.1f °C]"   <temperature>   (Heizung)   { channel="modbus:data:nibe-s1155:nibe-s1155_poll-temp:nibe-s1155_poll-temp_condesat_d:number"}
Number nibe_Heizkurve               "Nibe-S1155PC Heizkurvenverschiebung [%i]"                  (Heizung)   { channel="modbus:data:nibe-s1155:nibe-s1155_poll-heizkurve:nibe-s1155_poll-heizkurve_d:number"}
Number nibe_Kuehlkurve              "Nibe-S1155PC Kühlkurvenverschiebung [%i]"                  (Heizung)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-kuelkurve:nibe-s1155_poll-kuelkurve_d:number"}

Number:Temperature nibe_HeizungVLZiel "Nibe-S1155PC Heizung VL VL [Vorlauf] Berechnet [%.1f °C]" <temperature> (Heizung)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-temp_supply_target:nibe-s1155_poll-temp_supply_target_d:number" }


Number:Temperature nibe_Wassertemperatur "Nibe-S1155PC Brauchwassertemperatur [%.1f °C]" <temperature> (Brauchwasser)   { channel="modbus:data:nibe-s1155:nibe-s1155_poll-temp:nibe-s1155_poll-temp_water_d:number" }
Number:Temperature nibe_Wasserbereitung "Nibe-S1155PC Brauchwasserbereitung [%.1f °C]"  <temperature> (Brauchwasser)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-temp:nibe-s1155_poll-temp_water-prod_d:number"}
Number nibe_Wasserbereitung_starten "Nibe-S1155PC Brauchwasserbereitung starten [MAP(nibe-ww.map):%s]" (Brauchwasser)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-water_heating:nibe-s1155_poll-water_heating_d:number" }

Number nibe_ElectricalPower "Nibe-S1155PC ElektrischeLeistung [%.1f Ws]" (NibeS1155)   { channel="modbus:data:nibe-s1155:nibe-s1155_poll-el_pow:nibe-s1155_poll-el_pow_d:number"}
Number nibe_Priority "Nibe-S1155PC Vorrang [MAP(nibe-prio.map):%s]" (NibeS1155)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-prio:nibe-s1155_poll-prio_d:number"}
Number nibe_OperationMode "Nibe-S1155PC Operation Mode [MAP(nibe-mode.map):%s]" (NibeS1155)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-prio:nibe-s1155_poll-mode_d:number"}
Number nibe_Status "Nibe-S1155PC Status [%s]" (NibeS1155)  { channel="modbus:data:nibe-s1155:nibe-s1155_poll-prio:nibe-s1155_poll-status_d:number"}



1



Beitrag schreiben oder Werbung ausblenden?
Einloggen

 Kostenlos registrieren [Mehr Infos]

Nächstes Thema: Einbauspots Decke - viereckig aber zum rund ausbohren