IHC temperatur protokol

Det er muligt at sætte en temperatur føler en enkelt indgang på et IHC indput modul, og for temperatur værdien ind i IHC så det kan bruges til temperatur styring og lign. Desuden kan der være en ekstra “gulv” temperatur fra føleren. Den samme protokol kan bruges til en temperatur føler med fugtighedsmåler.Signalet består at de 3 værdier for temperatur, fugtighed, og gulvtemperatur og til sidst en 5 bits checksum. Hver værdi er i 1/10 dele og anvender 12bit. D.v.s signalet er totals 12*3+5=41 bits

  • Hver bit er ca 144ms
  • En 1 bit starter med høj i 81ms og derefter lav
  • En 0 bit starter med høj i 41ms og derefter lav

Beregning af checksum

Checksum beregnes som en nibble checksum (d.v.s. 4 bits ad gangen)

Et eksempel

Vi har en rum temperatur på 21,5 og gulvtemperatur på 19,2 grader. Temperaturene ganges med 10 og det giver:

21,5*10=215 = 11010111

19,2*10=192 = 1100000

Værdier kommer i rækkefølgen: rum temperatur, luftfugtighed og gulvtemperatur. Så nu har vi

0000 1101 0111 0000 0000 0000 0000 1100 0000

Nibble checksum (nul værdier udeladt):

1101 + 0111 + 1100 = 13+7+12 = 32 = 32 afrundes til 4 bit = 0

Den fulde pakke er nu:

0000 1101 0111 0000 0000 0000 0000 1100 0000 00000

Den sendes fra venstre til højre. Bemærk checksum er 5 bit selvom den er afrundet til 4 bit.

Special checksum hvis gulvtemperatur ikke er med

Når gulvtemperaturen ikke er med skal bit 5 sættes til 1 og bit 4 inverteres. (Mærkelig undtagelse som jeg ikke har nogen forklaring på)

3 responses to “IHC temperatur protokol”

  1. Kim bork says:

    Kan du give et par eksempler?

    • Jens says:

      Et eksempel er tilføjet ovenfor. Se e.v.t. koden i mit ArduinoIHC library. (Hvis du ikke er vant til c/c++ og bit operationerer så er det måske lidt svært at forstå).

  2. Frank Jensen says:

    Tak for denne artikel 🙂

    Har ud fra dette, lavet en blok til WAGO, så IHC BIT produkterne kan bruges dertil.

    Lux + temp IHC modul kører samme protokol
    12 bit temp + 12 bit hvor kun 1 bit bliver brugt til LUX over 50, må være en slags skumre funktion + 12 bit lux + 5 bit checksum.

Leave a Reply

Your email address will not be published. Required fields are marked *