SIEMENS IOT 2000 - Node - Red ("simatic_iot2000", node)

Hi everyone!

I recently got into a task to be able to use the IOT 2040 together with node-red. This IOT was used by a former colleague who already used this using the node "simatic_iot2000" and it worked perfectly together with the IOT and some motion sensors in a PC connected with a IOT 2000. I have tried to import this flow and nodes, the flow is imported fine but the node does not find it. I have tried to install it but it does not work.
I don't find the node (it seems that it isn't exist anymore) but in the PC that i said recently, it's working. And the logic says that if in this node it's working if i import all the ".node-red" folder should be working in my new "IOT 2000" too. Maybe there are other nodes that can help me but i don't find anything that fits in my needs.

I don't know how node-red works, i'm new in this.

This is my node-red when I import the flow and nodes from the old node-red flow.

And this is the flow from the old node-red.

Thank you everyone who is reading me. It will be a pleasure for me to have your help.

I developed these nodes.
Unfortunately, Siemens has forbidden me to publish these nodes. I don't know why. The IOT2000 is a discontinued model. I recommend switching to another platform. For example Raspberry Pi.

2 Likes

Umm, why / how? did you get a cease and desist? Does your node infringe any trade marks or something else?

Hi Steve,
I still don't know the real reason. But at Siemens many things are not open. I made the mistake of developing hardware and software for Profibus. Many users wanted to connect Node-Red to their old PLC. The hardware was very simple and cheap. Siemens didn't like that. I suspect that's why Siemens banned everything. Of course I didn't want to have anything to do with Siemens.

Aren't profiBus and S7 protocol open protocols?

Not certain how they can stop you. Also, feels a bit like double standards considering they use the free OSS "node-red" in their own product!

Did you get a scary official looking legal letter? If so, I would get it checked over. may simply be bullying tactics.

No, they are internal protocols from Siemens and not open.
Siemens PLC has a lot of protocols internally, but there is no public documentation about them.
For example, the S7 protocol was determined with Wireshark and there was the libnodave library.
All applications like Node-Red use the libnodave protocol. There was an attempt by Siemens to prevent this, but since it's an ISOXXX (I don't remember the number) protocol, Siemens couldn't do it.
But strangely, Siemens itself uses the S7 node in its projects. :slight_smile:
I don't want to have anything to do with Siemens, so I'll leave it alone.

1 Like

I have similar feelings.

OMRON ftw :slight_smile:

1 Like

First of all, it is a pleasure to talk to you since you are the one who developed this node.

The hardware I have is the IOT 2000, in a panel connected to a desktop pc and a motion sensor. And the task I have to do using this hardware without being able to change it. All of this is connected to phpmyadmin and gets the "ticks" of the things that cross the motion sensor and add a "tick" in a web software that displays it with a number.

I found this already and I have no idea about node-red, i'm lost.

Is there another node that can replace it? Or why it works in the other panel I have and not in this new one? Could I copy and paste it to reuse it or would I have to take the sd from one IOT and put it on the other? I saw that exists a node called " node-red-contrib-s7" but that works only for PLCs right?Even with Siemens hardware or paying something/someone or buying something external, something that could work with this hardware i really need it.

Or maybe there is another solution with node-red and this hardware, I really don't know anything about the subject and I don't know where to start.

Greetings and delighted

If you look, on the working one, in the folder .node-red/node_modules you should find a folder with the name of the installed node. node-red-contrib-simatic_iot2000 or whatever it is. If you copy that complete folder from the working one to a new folder on the new one, but not inside the .node-red folder, then go into the .node-red folder and run
npm install /path/to/node-red-contrib-simantic-iot2000
then it should install it from there. Restart node-red and it should be available in the palette. Don't delete the folder you copied it to, that needs to stay there.

Hi Colin!
Thank you so much for answering me and taking your time.

I found the folder where the node was installed and i did it in my new IOT but i saw that the node it's disabled, it's installed but don't show it in the filter nodes.

image
image

Did you restart node-red and refresh the browser page?

I did it rebooting the PC and stoping and starting it from Visual Studio (where i start it), i'm testing it in my Windows PC before using it in the IOT.

Did you refresh the browser window?

What to you mean by that? Where is it disabled?

Please start node red and post the startup log here.
Also please post your .node-red/package.json file.

One of my last logs when i installed the node:

131 timing reify:retireShallow Completed in 1361ms
132 timing reify:createSparse Completed in 2ms
133 timing reify:loadBundles Completed in 0ms
134 silly audit bulk request { 'node-red-contrib-iot2000-gpio': [ '1.0.0' ] }
135 warn tarball tarball data for node-red-contrib-iot2000-gpio@file:node-red-contrib-iot2000-gpio (null) seems to be corrupted. Trying again.
136 warn tarball tarball data for node-red-contrib-iot2000-gpio@file:node-red-contrib-iot2000-gpio (null) seems to be corrupted. Trying again.
137 timing reify:rollback:createSparse Completed in 12ms
138 timing reify:rollback:retireShallow Completed in 137ms
139 timing command:i Completed in 1692ms
140 verbose stack Error: ENOENT: no such file or directory, open 'C:\Users\Manuel\.node-red\node_modules\node-red-contrib-iot2000-gpio\package.json'
141 verbose cwd C:\Users\Manuel\.node-red\node_modules
142 verbose Windows_NT 10.0.22000
143 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "i" ".\\node-red-contrib-iot2000-gpio\\"
144 verbose node v16.15.0
145 verbose npm  v8.5.5
146 error code ENOENT
147 error syscall open
148 error path C:\Users\Manuel\.node-red\node_modules\node-red-contrib-iot2000-gpio/package.json
149 error errno -4058
150 error enoent ENOENT: no such file or directory, open 'C:\Users\Manuel\.node-red\node_modules\node-red-contrib-iot2000-gpio\package.json'
151 error enoent This is related to npm not being able to find a file.
151 error enoent
152 verbose exit -4058
153 timing npm Completed in 1983ms
154 verbose unfinished npm timer reify 1664971114485
155 verbose unfinished npm timer reify:audit 1664971115989
156 verbose unfinished npm timer auditReport:getReport 1664971115990
157 verbose unfinished npm timer reify:unpack 1664971115995
158 verbose unfinished npm timer reifyNode:node_modules/node-red-contrib-iot2000-gpio 1664971115995
159 verbose code -4058
160 error A complete log of this run can be found in:
160 error     C:\Users\Manuel\AppData\Local\npm-cache\_logs\2022-10-05T11_58_34_197Z-debug-0.log`Preformatted text`

My package.json:

{
    "name"         : "node-red",
    "version"      : "0.16.2",
    "description"  : "A visual tool for wiring the Internet of Things",
    "homepage"     : "http://nodered.org",
    "license"      : "Apache-2.0",
    "repository"   : {
        "type":"git",
        "url":"https://github.com/node-red/node-red.git"
    },
    "main"         : "red/red.js",
    "scripts"      : {
        "start": "node red.js",
        "test": "grunt",
        "build": "grunt build"
    },
    "bin"          : {
        "node-red": "./red.js",
        "node-red-pi": "bin/node-red-pi"
    },
    "contributors": [
        {"name": "Nick O'Leary"},
        {"name": "Dave Conway-Jones"}
    ],
    "keywords": [
        "editor", "messaging", "iot", "flow"
    ],
    "dependencies": {
        "basic-auth": "1.1.0",
        "bcryptjs": "2.4.0",
        "body-parser": "1.15.2",
        "cheerio":"0.22.0",
        "clone": "2.1.0",
        "cookie-parser": "1.4.3",
        "cors":"2.8.1",
        "cron":"1.2.1",
        "express": "4.14.0",
        "follow-redirects":"1.2.1",
        "fs-extra": "1.0.0",
        "fs.notify":"0.0.4",
        "i18next":"1.10.6",
        "is-utf8":"0.2.1",
        "js-yaml": "3.7.0",
        "json-stringify-safe":"5.0.1",
        "jsonata":"1.0.10",
        "media-typer": "0.3.0",
        "mqtt": "2.2.1",
        "mustache": "2.3.0",
        "nopt": "3.0.6",
        "oauth2orize":"1.7.0",
        "on-headers":"1.0.1",
        "passport":"0.3.2",
        "passport-http-bearer":"1.0.1",
        "passport-oauth2-client-password":"0.1.2",
        "raw-body":"2.2.0",
        "semver": "5.3.0",
        "sentiment":"2.1.0",
        "uglify-js":"2.7.5",
        "when": "3.7.7",
        "ws": "1.1.1",
        "xml2js":"0.4.17",
        "node-red-node-feedparser":"0.1.*",
        "node-red-node-email":"0.1.*",
        "node-red-node-twitter":"0.1.*",
        "node-red-node-rbe":"0.1.*"
    },
    "optionalDependencies": {
        "bcrypt":"~1.0.1"
    },
    "devDependencies": {
        "grunt": "~1.0.1",
        "grunt-chmod": "~1.1.1",
        "grunt-cli": "~1.2.0",
        "grunt-concurrent":"~2.3.1",
        "grunt-contrib-clean":"~1.0.0",
        "grunt-contrib-compress": "~1.3.0",
        "grunt-contrib-concat":"~1.0.1",
        "grunt-contrib-copy": "~1.0.0",
        "grunt-contrib-jshint": "~1.1.0",
        "grunt-contrib-uglify": "~2.0.0",
        "grunt-contrib-watch":"~1.0.0",
        "grunt-jsonlint":"~1.1.0",
        "grunt-nodemon":"~0.4.2",
        "grunt-sass":"~1.2.1",
        "grunt-simple-mocha": "~0.4.1",
        "mocha": "~3.2.0",
        "should": "^8.4.0",
        "sinon": "1.17.7",
        "supertest": "2.0.1"
    },
    "engines": {
        "node": ">=4"
    }
}

What command did you run to get that output, and what folder did you copy the node to?

[Edit] Also, I am confused, what is the name of the node you are trying to install?

[Further Edit] Is that the package.json from the .node-red folder? In the screenshot earlier you showed several contrib packages installed, but they do not appear in the package file.

I found both info in:

  • Logs : C:\Users\User\AppData\Local\npm-cache_logs
  • Package.json : In my .node-red folder (C:\Users\User.node-red) there isn't package.json

The node is "node-red-contrib-iot2000-gpio", for an IOT 2000

What command did you run to try to install the node? Please try to install it again and post the output you get when you run the install command.

What files are in the folder C:\Users\Manuel\.node-red

Also please post the startup log when you start node-red in a terminal

Hi Colin!

When i try it to installed the node i use the comand npm i -g node-red-contrib-iot2000-gpio:

image

Inside the folder C:\Users\Manuel\.node-red, i got:

image

And the startup log in my terminal when i start node-red is:

6 Oct 08:05:45 - [info]

Welcome to Node-RED
===================

6 Oct 08:05:45 - [info] Node-RED version: v0.16.2
6 Oct 08:05:45 - [info] Node.js  version: v16.15.0
6 Oct 08:05:45 - [info] Windows_NT 10.0.22000 x64 LE
6 Oct 08:05:47 - [info] Loading palette nodes
6 Oct 08:05:48 - [warn] ------------------------------------------------------
6 Oct 08:05:48 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node
6 Oct 08:05:48 - [warn] [tail] Not currently supported on Windows.
6 Oct 08:05:48 - [warn] ------------------------------------------------------
6 Oct 08:05:48 - [info] Settings file  : \Users\Manuel\.node-red\settings.js
6 Oct 08:05:48 - [info] User directory : \Users\Manuel\.node-red
6 Oct 08:05:48 - [info] Flows file     : \Users\Manuel\.node-red\flows_DESKTOP-7PT0EQL.json
6 Oct 08:05:48 - [info] Server now running at http://127.0.0.1:1880/
6 Oct 08:05:48 - [info] Waiting for missing types to be registered:
6 Oct 08:05:48 - [info]  - iot2000-gpio-din

Thank you so much for your interest to help me

Hi Colin!
I saw that there is a "Waiting for missing types to be registered:" text that says, that my node "node-red-contrib-iot2000-gpio" isn't registered. It's something tipical that ocurr when you create a node and try to use it, right?

6 Oct 08:05:48 - [info] Waiting for missing types to be registered:
6 Oct 08:05:48 - [info]  - iot2000-gpio-din

Please look back at what I suggested you do, that command is nowhere in that suggestion.