# Write signed Integer

**URL:** <https://discourse.nodered.org/t/write-signed-integer/60004>\
**Category:** General\
**Created:** [17 March 2022 21:05 UTC](https://discourse.nodered.org/t/write-signed-integer/60004 "2022-03-17T21:05:43Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![peterr](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/peterr/32/57583_2.png) [@peterr](https://discourse.nodered.org/u/peterr)\
**Post date:** [17 March 2022 21:05 UTC](https://discourse.nodered.org/t/write-signed-integer/60004/1 "2022-03-17T21:05:43Z")

</div>

Hi,  
I'm trying to get my inverter to charge battery from grid thru modbus tcp/ip.  
I finally got an answer from Fronius support, what values to which registers I need to write.  
Writing to single registers works fine, but I have difficulties in figuring out two things:

1. How do I write a Negative value (-5000) to a register?
2. How do I write to multiple (4) registers, that is not in a sequence right after eachother (register 40349, 40356, 40357, 40361)?

I have attached an email snip from Fronius support and the relevant register map.

![Email snip_Fronius](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/8/5/8591220d21aa0609d4edfdddfe4f3bbdec538e7f.jpeg)

 ![RegisterMap_Gen24_SF_Storage](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/b/9b09083dc46f2d5d6fd5e5ade169b315e63c3643.jpeg)

Ps. I'm able to write with FC16 successfully to single registers + multiple registers in a sequence (just not negative values or registers out of sequence)

Thanks in advance,  
Peter

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [18 March 2022 12:20 UTC](https://discourse.nodered.org/t/write-signed-integer/60004/2 "2022-03-18T12:20:59Z")

</div>

> [@peterr](#):
>
> How do I write a Negative value (-5000) to a register?

As modbus is unsigned 16bit integer, convert the value -5000 to unsigned integer

You can do this with buffer-maker and buffer-parser nodes.

Or if you are comfortable in a function node, the easiest way is with a `Buffer`

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/9/a98e1c76c199cb03d8af125edf1837f0d98ccc33.png)

> [@peterr](#):
>
> How do I write to multiple (4) registers, that is not in a sequence right after eachother (register 40349, 40356, 40357, 40361)?

You will need to write them individually. I would suggest you write a subroutine using link-call node.

`link-in` node "write signed-integer" → `function` node (convert `msg.payload` to UINT) → `modbus write` node → `link-out` node (set to return mode)

then call it 3 times in 1 flow/sequence...

`inject` node →  
&nbsp; `change` node (set `msg.addr="40349"` & `msg.payload=2`) → `link-call` "write signed-integer" →  
&nbsp; `change` node (set `msg.addr="40356"` & `msg.payload=-5000`) --\> `link-call` "write signed-integer" →  
&nbsp; `change` node (set `msg.addr="40357"` & `msg.payload=0`) --\> `link-call` "write signed-integer" →  
&nbsp;done!

---

<div class="post-metadata">

**Author:** ![peterr](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/peterr/32/57583_2.png) [@peterr](https://discourse.nodered.org/u/peterr)\
**Post date:** [18 March 2022 14:09 UTC](https://discourse.nodered.org/t/write-signed-integer/60004/3 "2022-03-18T14:09:53Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/0/b08b01dad28ef57b2dec266afa55c7409a4d376d.png)

Hi Steve,  
Exactly WHAT I made differently - I'm honnestly now quite sure (I'll figure it out) 🙂  
The main thing is - It finally Works !!

I used the Buffer Maker - Buffer Parser and write it with FC6 for the individual registers.  
I'll try the Link Out / In / Call, so I can sequence it all and create a Boolean trigger in Home Assistant to fire off all the Modbus Writes.

Thanks ALOT - how/where do I "buy you a coffee"?  
Cheers,  
Peter

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [19 March 2022 13:11 UTC](https://discourse.nodered.org/t/write-signed-integer/60004/4 "2022-03-19T13:11:09Z")

</div>

> [@peterr](#):
>
> Thanks ALOT - how/where do I "buy you a coffee"?

Thanks for the offer Peter. The only thing I would accept is your future contributions to node-red and it's community 🙂

PS: You could always contribute to the OpenJS Foundation as a way of saying thanks. It has some benefits too: [JavaScriptLandia - OpenJS Foundation](https://openjsf.org/javascriptlandia/)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [2 April 2022 13:11 UTC](https://discourse.nodered.org/t/write-signed-integer/60004/5 "2022-04-02T13:11:36Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
