Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Controllers
  3. Domoticz
  4. District Heating / City Heating (Stadsverwarming) Mysensor IR sender/Receiver

District Heating / City Heating (Stadsverwarming) Mysensor IR sender/Receiver

Scheduled Pinned Locked Moved Domoticz
8 Posts 4 Posters 4.2k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ChakkieC Offline
    ChakkieC Offline
    Chakkie
    wrote on last edited by
    #1

    Hi guys,

    I've been looking for a while on internet to find a way to log the heating usage (District Heating) on my Kamstrup Multical 401. I have come across this thread https://www.domoticz.com/forum/viewtopic.php?f=31&t=5390&hilit=Stadsverwarming. This thread mentions the use of an IR convertor cable (25 euro see image below) and python script.

    alt text
    [img]http://www.smartmeterdashboard.nl/_/rsrc/1355181399073/webshop/IR Convertercable.jpg?height=181&width=200[/img]

    Since I've already been logging my energy and water usage using Mysensor pulse sensor, I though this might also work with the Kamstrup meter (Although I have not find any one on internet using Mysensor to log).

    So I bought this IR Transmitter and receiver [img]https://www.mysensors.org/light/ir.png[/img].

    Uploaded the script found on this url [url]http://frack.nl/wiki/Stadsverwarming[/url] to my arduino. Note that there is no Mysensors components in this script. I only use serial monitor of the ArduinoIDE to test if this works.

    I have set the baudrate to 300 and 1200. Unfortunately I did not get any feedback from the Kamstrup meter. I was wondering if anyone know if this IR transmitter will acturally communicate with the Kamstrup meter. Or am I really stuck with the IR converter cable.

    Thanks everyone.

    Controller: Domoticz
    Server: Raspberry Pi

    [code]
    #include <SoftwareSerial.h>
     
    const int LEDPIN   = 5;
    const int DIODEPIN = A1;
     
    SoftwareSerial mySerial(DIODEPIN, LEDPIN); // RX, TX
     
    long d;
     
    void setup() {
      pinMode(LEDPIN, OUTPUT);
      pinMode(DIODEPIN, INPUT);
      digitalWrite(DIODEPIN, LOW);
      Serial.begin(9600);
      d = millis() + 5000;
    }
     
    char ch;
    boolean rx;
     
    void rx300() {
      boolean done=false;
      mySerial.begin(300);
      mySerial.println("/?!");
      while (!done) {
        if (mySerial.available()) {
          ch = mySerial.read() & 0x7F;
          if (ch == 2) rx = true;
          else if (ch == 3) {
             rx = false;
             done = true;
          }
          else if (rx == true) 
            Serial.print(ch);
            //Serial.write(ch);
        }
      }
    }
     
    void rx1200(char k, long* val, char n) {
      boolean done=false;
      char str[12];
      char i=0, j=0;
      String req = "/#";
      req += k;
      mySerial.begin(300);
      mySerial.println(req);
      mySerial.begin(1200);
      while (n>0) {
        if (mySerial.available()) {
          ch = mySerial.read() & 0x7F;
          if (ch != 0x7F) {
            if (ch == 13) ch == 32;
            //Serial.print(ch);
            if (ch == 32) {
               str[j] = 0;
               *val = atol(str);
               j = 0;
               val++;
               i++;
               n--;
            } else str[j++] = ch;
          }
        }
      }
    }
     
    void loop() {
      long vala[10];
      if (d < millis()) {
        rx300();
        rx1200('1', vala, 10);
        Serial.print("energy [GJ]: ");
        Serial.println(vala[0]/100.0);
        Serial.print("water [m3]: ");
        Serial.println(vala[1]/100.0);
        Serial.print("hourcounter [j]: ");
        Serial.println(vala[2]);
        Serial.print("Tin [.C]: ");
        Serial.println(vala[3]/100.0);
        Serial.print("Tout [.C]: ");
        Serial.println(vala[4]/100.0);
        Serial.print("deltaT [.C]: ");
        Serial.println(vala[5]/100.0);
        Serial.print("power [kW]: ");
        Serial.println(vala[6]/10.0);
        Serial.print("flow [l/h]: ");
        Serial.println(vala[7]);
        Serial.print("peak power/flow [?]: ");
        Serial.println(vala[8]);
        Serial.print("info: ");
        Serial.println(vala[9]);
        while(1);
      }
    }[/code]```

    Raspberry Pi 2
    Domoticz
    RFXCOM
    ZWAVE Aeon stick
    Coming soon Arduino mysensors GW

    TheoLT 1 Reply Last reply
    0
    • ChakkieC Chakkie

      Hi guys,

      I've been looking for a while on internet to find a way to log the heating usage (District Heating) on my Kamstrup Multical 401. I have come across this thread https://www.domoticz.com/forum/viewtopic.php?f=31&t=5390&hilit=Stadsverwarming. This thread mentions the use of an IR convertor cable (25 euro see image below) and python script.

      alt text
      [img]http://www.smartmeterdashboard.nl/_/rsrc/1355181399073/webshop/IR Convertercable.jpg?height=181&width=200[/img]

      Since I've already been logging my energy and water usage using Mysensor pulse sensor, I though this might also work with the Kamstrup meter (Although I have not find any one on internet using Mysensor to log).

      So I bought this IR Transmitter and receiver [img]https://www.mysensors.org/light/ir.png[/img].

      Uploaded the script found on this url [url]http://frack.nl/wiki/Stadsverwarming[/url] to my arduino. Note that there is no Mysensors components in this script. I only use serial monitor of the ArduinoIDE to test if this works.

      I have set the baudrate to 300 and 1200. Unfortunately I did not get any feedback from the Kamstrup meter. I was wondering if anyone know if this IR transmitter will acturally communicate with the Kamstrup meter. Or am I really stuck with the IR converter cable.

      Thanks everyone.

      Controller: Domoticz
      Server: Raspberry Pi

      [code]
      #include <SoftwareSerial.h>
       
      const int LEDPIN   = 5;
      const int DIODEPIN = A1;
       
      SoftwareSerial mySerial(DIODEPIN, LEDPIN); // RX, TX
       
      long d;
       
      void setup() {
        pinMode(LEDPIN, OUTPUT);
        pinMode(DIODEPIN, INPUT);
        digitalWrite(DIODEPIN, LOW);
        Serial.begin(9600);
        d = millis() + 5000;
      }
       
      char ch;
      boolean rx;
       
      void rx300() {
        boolean done=false;
        mySerial.begin(300);
        mySerial.println("/?!");
        while (!done) {
          if (mySerial.available()) {
            ch = mySerial.read() & 0x7F;
            if (ch == 2) rx = true;
            else if (ch == 3) {
               rx = false;
               done = true;
            }
            else if (rx == true) 
              Serial.print(ch);
              //Serial.write(ch);
          }
        }
      }
       
      void rx1200(char k, long* val, char n) {
        boolean done=false;
        char str[12];
        char i=0, j=0;
        String req = "/#";
        req += k;
        mySerial.begin(300);
        mySerial.println(req);
        mySerial.begin(1200);
        while (n>0) {
          if (mySerial.available()) {
            ch = mySerial.read() & 0x7F;
            if (ch != 0x7F) {
              if (ch == 13) ch == 32;
              //Serial.print(ch);
              if (ch == 32) {
                 str[j] = 0;
                 *val = atol(str);
                 j = 0;
                 val++;
                 i++;
                 n--;
              } else str[j++] = ch;
            }
          }
        }
      }
       
      void loop() {
        long vala[10];
        if (d < millis()) {
          rx300();
          rx1200('1', vala, 10);
          Serial.print("energy [GJ]: ");
          Serial.println(vala[0]/100.0);
          Serial.print("water [m3]: ");
          Serial.println(vala[1]/100.0);
          Serial.print("hourcounter [j]: ");
          Serial.println(vala[2]);
          Serial.print("Tin [.C]: ");
          Serial.println(vala[3]/100.0);
          Serial.print("Tout [.C]: ");
          Serial.println(vala[4]/100.0);
          Serial.print("deltaT [.C]: ");
          Serial.println(vala[5]/100.0);
          Serial.print("power [kW]: ");
          Serial.println(vala[6]/10.0);
          Serial.print("flow [l/h]: ");
          Serial.println(vala[7]);
          Serial.print("peak power/flow [?]: ");
          Serial.println(vala[8]);
          Serial.print("info: ");
          Serial.println(vala[9]);
          while(1);
        }
      }[/code]```
      TheoLT Offline
      TheoLT Offline
      TheoL
      Contest Winner
      wrote on last edited by TheoL
      #2

      Hello @Chakkie,

      I examined the example you provided. Maybe it's because I'm a bit tired. Just can't get used to the DLS. But I think it's not the best Arduino sketch I've ever seen. But the question is. Have you tried that one? Is it working? I see that the mySerial.begin() is called three times. I don't know if that's a good thing or not. Also the measuring starts after 5 seconds and I can see no reason it has to do that. And after one reading the sketch goes into an infinite loop.

      But if you've got that sketch working, MySensorfying is real easy.
      I also looked at the cable. The website is stating the following:
      Opmerking: Als er een IR poort op een meter aanwezig is, is die niet altijd geactiveerd. Dat is met zekerheid het geval bij "Flonidan Uniflo" slimme gasmeters (Enexis en Liander) en veel meters van netbeheerder Enexis.

      So it would be a good thing to check if it's a possibility that the IR led of your meter is inactive.

      ChakkieC 1 Reply Last reply
      0
      • TheoLT TheoL

        Hello @Chakkie,

        I examined the example you provided. Maybe it's because I'm a bit tired. Just can't get used to the DLS. But I think it's not the best Arduino sketch I've ever seen. But the question is. Have you tried that one? Is it working? I see that the mySerial.begin() is called three times. I don't know if that's a good thing or not. Also the measuring starts after 5 seconds and I can see no reason it has to do that. And after one reading the sketch goes into an infinite loop.

        But if you've got that sketch working, MySensorfying is real easy.
        I also looked at the cable. The website is stating the following:
        Opmerking: Als er een IR poort op een meter aanwezig is, is die niet altijd geactiveerd. Dat is met zekerheid het geval bij "Flonidan Uniflo" slimme gasmeters (Enexis en Liander) en veel meters van netbeheerder Enexis.

        So it would be a good thing to check if it's a possibility that the IR led of your meter is inactive.

        ChakkieC Offline
        ChakkieC Offline
        Chakkie
        wrote on last edited by
        #3

        Hi @TheoL

        Thank you so much for your quick reply and pointing out that the IR port of the meter may not be active. Now I only have to find out if the IR port is active :).

        You mentioned that there is another sketch for reading the Kamstrup meter. May be I have to look around on internet. If you happen to know where I can find this sketch then it would be nice :). I will try to modify the sketch according to your advise. Hope this is going to work.

        Thanks again TheoL

        Raspberry Pi 2
        Domoticz
        RFXCOM
        ZWAVE Aeon stick
        Coming soon Arduino mysensors GW

        TheoLT 1 Reply Last reply
        0
        • ChakkieC Chakkie

          Hi @TheoL

          Thank you so much for your quick reply and pointing out that the IR port of the meter may not be active. Now I only have to find out if the IR port is active :).

          You mentioned that there is another sketch for reading the Kamstrup meter. May be I have to look around on internet. If you happen to know where I can find this sketch then it would be nice :). I will try to modify the sketch according to your advise. Hope this is going to work.

          Thanks again TheoL

          TheoLT Offline
          TheoLT Offline
          TheoL
          Contest Winner
          wrote on last edited by TheoL
          #4

          Hi @Chakkie,

          I watched the sketch in the link you provided http://frack.nl/wiki/Stadsverwarming My comments where all about the sketch in that link.

          Also it's a good practice to change code lines like the following to #defines. It'll save memory usage in the arduino:
          const int LEDPIN = 5
          const int DIODEPIN = A1;

          Change that to:
          #define DIODEPIN 5
          #define DIODEPIN A1

          1 Reply Last reply
          0
          • D Offline
            D Offline
            DavidZH
            wrote on last edited by
            #5

            First thing you can try to see if the IR is working is to point your smartphone camera at it. That should light up as if your looking into a flickering light bulb.
            There is also a possibility there is no module installed in your meter.

            As far as I can see you can always read the Kamstrup via M-bus, but those gateways are not really cheap.

            As a last resort there's always the solution with a cheap USB camera and some text-recognizing software. That will require some skill though.

            Good luck!

            ChakkieC 1 Reply Last reply
            0
            • tbowmoT Offline
              tbowmoT Offline
              tbowmo
              Admin
              wrote on last edited by tbowmo
              #6

              @Chakkie

              The kamstrup meter might use a reed relay to shutdown their transmitter if there is no magnets detected in the reading eye. So maybe you should try and add a couple of magnets to your setup?

              A local hackerspace group here in Denmark is selling reading heads for about 14$, http://wiki.hal9k.dk/projects/kamstrup (Google translate might be able to make it into something readable, for non-danish people :))

              ChakkieC 1 Reply Last reply
              0
              • D DavidZH

                First thing you can try to see if the IR is working is to point your smartphone camera at it. That should light up as if your looking into a flickering light bulb.
                There is also a possibility there is no module installed in your meter.

                As far as I can see you can always read the Kamstrup via M-bus, but those gateways are not really cheap.

                As a last resort there's always the solution with a cheap USB camera and some text-recognizing software. That will require some skill though.

                Good luck!

                ChakkieC Offline
                ChakkieC Offline
                Chakkie
                wrote on last edited by
                #7

                @DavidZH
                Yes thank you so much. This a really nice tip. I have already tried using my phone camera to see if I'll get any response from the meter. Unfortunately no IR feeback.

                Via the M-Bus is not possible because the meter is sealed by the provider and opening the seal may get me in to trouble :).

                ThANKS

                Raspberry Pi 2
                Domoticz
                RFXCOM
                ZWAVE Aeon stick
                Coming soon Arduino mysensors GW

                1 Reply Last reply
                0
                • tbowmoT tbowmo

                  @Chakkie

                  The kamstrup meter might use a reed relay to shutdown their transmitter if there is no magnets detected in the reading eye. So maybe you should try and add a couple of magnets to your setup?

                  A local hackerspace group here in Denmark is selling reading heads for about 14$, http://wiki.hal9k.dk/projects/kamstrup (Google translate might be able to make it into something readable, for non-danish people :))

                  ChakkieC Offline
                  ChakkieC Offline
                  Chakkie
                  wrote on last edited by
                  #8

                  @tbowmo

                  Wowww I did not know that this is a very nice info. I will definitely tried using a couple of magnets. Thank you so much for this info. Any the website you provides is pretty solide too. I've been looking on the internet for while and did not come across a hack like this one before.

                  I am a step further thanks

                  Raspberry Pi 2
                  Domoticz
                  RFXCOM
                  ZWAVE Aeon stick
                  Coming soon Arduino mysensors GW

                  1 Reply Last reply
                  0
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  18

                  Online

                  11.7k

                  Users

                  11.2k

                  Topics

                  113.1k

                  Posts


                  Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • MySensors
                  • OpenHardware.io
                  • Categories
                  • Recent
                  • Tags
                  • Popular