/r/nodered
A place to share nodes and flows, and discuss Node-RED, a low-code tool for event-driven applications.
Node-RED is a drag and drop programming tool made by IBM Emerging Technology to automate the Internet of Things.
You can think of it as the glue that connects your phone to your air conditioner, so that your AC is on half an hour before you get home.
Project home page at: http://nodered.org
/r/nodered
Hello everyone, is this even make sense?
Construct several workflows that connects local APIs to create micro service AI agents?
I have a windows 11 VM running and I installed nodered for some tinkering. I realise now that I intended to run it inside docker in case it needs to be moved from the test VM to a live one (along with other docker containers).
What would be the best process to do a clean uninstall of it? I followed the instructions to install on windows not including the bit about sharing to multiple users.
Thanks
I am new to NodeRed, and I was wondering if there is a NodeRed community in either Slack or Discord that I can join?
Hi all, Looking for some ideas on how best to monitor the execution of a node-red flow. E.g execution times. Ensuring that needed connections for data flows are available and working. Logging error messages. I’m currently trying to peace this together with the Prometheus exporter node to display metrics in grafana. But any other ideas would be helpful.
I have been told to study the docs. Any other sources? Like projects or anything
Hi, does anybody know a Bluetooth BLE node that works with Ubuntu 24 supporting Read, Write and Notify? Some time back I used node-red-contrib-noble-bluetooth but this does not seem to work anymore (probably due to the updated Ubuntu version). I tried some other nodes but I never could get beyond a connect.
It is just for prototyping but I am grateful for any hints.
Hello everyone,
I want to learn how to use Node-RED. To experiment, I got myself a Raspberry Pi 5 and a few sensors, like a DHT11 (humidity sensor). During my research, I noticed that many of the GPIO nodes don't work due to the new chip architecture of the Pi 5. Workarounds like using Python scripts that I execute in Node-RED haven't gotten me very far either, as I'm still too inexperienced in programming with Python. Does anyone here know of working nodes that could be used to read the sensors, or could you help me in some other way?
Whenever I restart my Windows 11 PC, I have to open the command prompt and type node-red to start it. I have already created a .bat file for auto-run, but Node-RED still doesn't start. Any solutions?
I created an installer and a portable version of node-red for Windows 10 and 11, very useful for making new installations in VM and for moving an entire project with its dependencies to another server.
Link to an example video: https://youtu.be/gV2FfDJb9UE
Download site:
I described my flow to Detect if someone is taking a shower incl. downloadable flow.
If so, can anyone direct me to some instructions please?
I am doing my first steps in Node-RED. In this case I have a MQTT IN Node, but I get this error: TypeError: msg.payload.split is not a function
The value of the MQTT IN looks like:
{
"group": {"value": 53},
"value": {"value": 1},
"type": {"value": "00"},
"unit": {"value": 0},
"max": {"value": 25.5},
"min": {"value": 0.0},
"status": {"value": "Heizbetrieb"}}
Hi, I'm a newbie to Node-Red in Home Assistant, but I try to be disciplined and curious, so I've watched a lot of tutorials on youtube, read documentation and practiced the examples they explain. I'm attaching the code so it's easier to understand where the error is and why. I appreciate any help in advance.
The problem: I have a presence sensor and I want it to turn on 2 smart lights (ceiling light and computer light) when it detects that I'm in the room (I use it with the computer, sometimes I'm there for 1 hour and sometimes 4) and for all of the above to be valid from sunset to sunrise.
What happens?: a) it turns off for no reason, b) the switch works but when I leave the room, the light stays on (I realize hours later when I wake up at night and see that they didn't turn off).
[
{
"id": "5dc18c0b1ab0c873",
"type": "tab",
"label": "Flow 1",
"disabled": false,
"info": "",
"env": []
},
{
"id": "8610bab889cc739b",
"type": "bigtimer",
"z": "5dc18c0b1ab0c873",
"outtopic": "",
"outpayload1": "",
"outpayload2": "",
"name": "Sunset - Sunrise",
"comment": "",
"lat": "-33.42602",
"lon": "-70.56346",
"starttime": "5004",
"endtime": "5003",
"starttime2": 0,
"endtime2": 0,
"startoff": "-5",
"endoff": 0,
"startoff2": 0,
"endoff2": 0,
"offs": 0,
"outtext1": "",
"outtext2": "",
"timeout": 1440,
"sun": true,
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"jan": true,
"feb": true,
"mar": true,
"apr": true,
"may": true,
"jun": true,
"jul": true,
"aug": true,
"sep": true,
"oct": true,
"nov": true,
"dec": true,
"day1": 0,
"month1": 0,
"day2": 0,
"month2": 0,
"day3": 0,
"month3": 0,
"day4": 0,
"month4": 0,
"day5": 0,
"month5": 0,
"day6": 0,
"month6": 0,
"day7": 0,
"month7": 0,
"day8": 0,
"month8": 0,
"day9": 0,
"month9": 0,
"day10": 0,
"month10": 0,
"day11": 0,
"month11": 0,
"day12": 0,
"month12": 0,
"d1": 0,
"w1": 0,
"d2": 0,
"w2": 0,
"d3": 0,
"w3": 0,
"d4": 0,
"w4": 0,
"d5": 0,
"w5": 0,
"d6": 0,
"w6": 0,
"xday1": 0,
"xmonth1": 0,
"xday2": 0,
"xmonth2": 0,
"xday3": 0,
"xmonth3": 0,
"xday4": 0,
"xmonth4": 0,
"xday5": 0,
"xmonth5": 0,
"xday6": 0,
"xmonth6": 0,
"xday7": "",
"xmonth7": "",
"xday8": "",
"xmonth8": "",
"xday9": "",
"xmonth9": "",
"xday10": "",
"xmonth10": "",
"xday11": "",
"xmonth11": "",
"xday12": "",
"xmonth12": "",
"xd1": 0,
"xw1": 0,
"xd2": 0,
"xw2": 0,
"xd3": 0,
"xw3": 0,
"xd4": 0,
"xw4": 0,
"xd5": 0,
"xw5": 0,
"xd6": 0,
"xw6": 0,
"suspend": false,
"random": false,
"randon1": false,
"randoff1": false,
"randon2": false,
"randoff2": false,
"repeat": false,
"atstart": true,
"odd": false,
"even": false,
"x": 390,
"y": 440,
"wires": [
[],
[
"02e722e0be924fb6"
],
[]
]
},
{
"id": "02e722e0be924fb6",
"type": "switch",
"z": "5dc18c0b1ab0c873",
"name": "Switch",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "0",
"vt": "num"
},
{
"t": "eq",
"v": "1",
"vt": "num"
}
],
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 620,
"y": 440,
"wires": [
[
"dfbb482d91bfe9e2"
],
[
"cd1a39ebc2e0e2a6",
"88ee059585c7d452"
]
]
},
{
"id": "408357661fb31f26",
"type": "delay",
"z": "5dc18c0b1ab0c873",
"name": "Delay 2'",
"pauseType": "delay",
"timeout": "2",
"timeoutUnits": "minutes",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 1000,
"y": 600,
"wires": [
[
"ed985d9cb46cacbb"
]
]
},
{
"id": "ed985d9cb46cacbb",
"type": "api-call-service",
"z": "5dc18c0b1ab0c873",
"name": "Apagar",
"server": "e8cee7e1.415b08",
"version": 7,
"debugenabled": false,
"action": "light.turn_off",
"floorId": [],
"areaId": [],
"deviceId": [],
"entityId": [
"light.luz_1_oficina_computador",
"light.luz_2_oficina"
],
"labelId": [],
"data": "",
"dataType": "json",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"blockInputOverrides": false,
"domain": "light",
"service": "turn_off",
"output_location": "",
"output_location_type": "none",
"x": 1260,
"y": 600,
"wires": [
[]
]
},
{
"id": "cd1a39ebc2e0e2a6",
"type": "change",
"z": "5dc18c0b1ab0c873",
"name": "Reset delay",
"rules": [
{
"t": "set",
"p": "reset",
"pt": "msg",
"to": "now",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 790,
"y": 600,
"wires": [
[
"408357661fb31f26"
]
]
},
{
"id": "88ee059585c7d452",
"type": "api-current-state",
"z": "5dc18c0b1ab0c873",
"name": "¿Encendida?",
"server": "e8cee7e1.415b08",
"version": 3,
"outputs": 2,
"halt_if": "off",
"halt_if_type": "str",
"halt_if_compare": "is",
"entity_id": "light.luz_2_oficina",
"state_type": "str",
"blockInputOverrides": false,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
},
{
"property": "data",
"propertyType": "msg",
"value": "",
"valueType": "entity"
}
],
"for": 0,
"forType": "num",
"forUnits": "minutes",
"x": 870,
"y": 520,
"wires": [
[
"ef0ae449eeea1034"
],
[]
]
},
{
"id": "ef0ae449eeea1034",
"type": "api-call-service",
"z": "5dc18c0b1ab0c873",
"name": "Encender",
"server": "e8cee7e1.415b08",
"version": 7,
"debugenabled": false,
"action": "light.turn_on",
"floorId": [],
"areaId": [],
"deviceId": [],
"entityId": [
"light.luz_1_oficina_computador",
"light.luz_2_oficina"
],
"labelId": [],
"data": "",
"dataType": "json",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"blockInputOverrides": false,
"domain": "light",
"service": "turn_on",
"output_location": "",
"output_location_type": "none",
"x": 1080,
"y": 520,
"wires": [
[]
]
},
{
"id": "dfbb482d91bfe9e2",
"type": "api-call-service",
"z": "5dc18c0b1ab0c873",
"name": "Apaga Luces",
"server": "e8cee7e1.415b08",
"version": 7,
"debugenabled": false,
"action": "light.turn_off",
"floorId": [],
"areaId": [],
"deviceId": [],
"entityId": [
"light.luz_1_oficina_computador",
"light.luz_2_oficina"
],
"labelId": [],
"data": "",
"dataType": "json",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"blockInputOverrides": false,
"domain": "light",
"service": "turn_off",
"output_location": "",
"output_location_type": "none",
"x": 900,
"y": 360,
"wires": [
[]
]
},
{
"id": "c6d87e503a82683c",
"type": "server-state-changed",
"z": "5dc18c0b1ab0c873",
"name": "Sensor presencia",
"server": "e8cee7e1.415b08",
"version": 6,
"outputs": 2,
"exposeAsEntityConfig": "",
"entities": {
"entity": [
"binary_sensor.sensor_presencia_oficina_presence"
],
"substring": [],
"regex": []
},
"outputInitially": false,
"stateType": "str",
"ifState": "on",
"ifStateType": "str",
"ifStateOperator": "is",
"outputOnlyOnStateChange": true,
"for": "",
"forType": "num",
"forUnits": "minutes",
"ignorePrevStateNull": false,
"ignorePrevStateUnknown": false,
"ignorePrevStateUnavailable": false,
"ignoreCurrentStateUnknown": false,
"ignoreCurrentStateUnavailable": false,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
},
{
"property": "data",
"propertyType": "msg",
"value": "",
"valueType": "eventData"
},
{
"property": "topic",
"propertyType": "msg",
"value": "",
"valueType": "triggerId"
}
],
"x": 130,
"y": 440,
"wires": [
[
"8610bab889cc739b"
],
[
"cb02605e5203b86f"
]
]
},
{
"id": "cb02605e5203b86f",
"type": "api-call-service",
"z": "5dc18c0b1ab0c873",
"name": "Apaga Luces",
"server": "e8cee7e1.415b08",
"version": 7,
"debugenabled": false,
"action": "light.turn_off",
"floorId": [],
"areaId": [],
"deviceId": [],
"entityId": [
"light.luz_1_oficina_computador",
"light.luz_2_oficina"
],
"labelId": [],
"data": "",
"dataType": "json",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"blockInputOverrides": false,
"domain": "light",
"service": "turn_off",
"output_location": "",
"output_location_type": "none",
"x": 400,
"y": 640,
"wires": [
[]
]
},
{
"id": "e8cee7e1.415b08",
"type": "server",
"name": "Home Assistant",
"addon": true,
"rejectUnauthorizedCerts": true,
"ha_boolean": "",
"connectionDelay": false,
"cacheJson": false,
"heartbeat": false,
"heartbeatInterval": "",
"statusSeparator": "",
"enableGlobalContextStore": false
}
]
Does anyone know of any palette that allows connectivity to Grundfos pumps?
Currently you need to hard-code the top and bottom limits of your Input and Target ranges directly in the node. Is anyone aware of a similar node that will allow me to send payloads to set those limits instead?
Good morning, can someone help me with this? I'm trying to get nodered to talk to Openauto Pro using this API - https://github.com/bluewave-studio/openauto-pro-api
However, I am drawing blanks with how to get this to work. I managed to get the python examples to work, but my python skills are crap, where as I have used nodered to do some basic stuff before. Could someone knock up a flow so that I can see how this actually works?
Ultimately the end goal is to inject "fake" obd data for things like temperature, etc as my Land Rover is waaaaaaaaaay before any of that. I have an existing flow somewhere on a ras pi that pulls raw data from the sensors, I just need to work out how to convert that to whatever witchcraft it needs for Openauto. Their community pages are all gone now, so I'm totally lost.
Hi, I have a SWITCH node that's accepting a payload (boolean or numeric) and testing it against 2 rules
pin1 output: boolean value
pin2 output : number <= 100
When the payload is a number <= 100 everything is fine and the switch node only outputs on the pin2
When the payload is a boolean value, the node correctly outputs the true/false value on pin1 but also outputs the same true/false value on pin2.
seems strange behaviour and I cant see the logic behind it, I'm hoping someone can explain it
Trying to figure this out for two things
A> If the temperature drops below 68 degrees, then turn on the heater and heat to 70 throughout the entire day
B> From 0615 to 0635 increase the heat to 72 when I wake up so I'm not cold when I get out of bed
Its very possible that this has more than it needs, I'm more of a set it and see what happens kind of Node Red user, so please let me know if this is doing what I want, and if it can be optimized
~~~
[
{
"id": "99950453472e1ce8",
"type": "tab",
"label": "Thermostat Temperatures",
"disabled": false,
"info": "",
"env": []
},
{
"id": "3cc20e2bc3799ab3",
"type": "api-call-service",
"z": "99950453472e1ce8",
"name": "Morning Warming 72",
"server": "4e3730d1.5341d",
"version": 7,
"debugenabled": false,
"action": "climate.set_temperature",
"floorId": [],
"areaId": [],
"deviceId": [
"b0d7de77f1b180c43b7a8ff91e29537b"
],
"entityId": [],
"labelId": [],
"data": "{\"temperature\":72}",
"dataType": "json",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "test Warming",
"valueType": "str"
}
],
"queue": "none",
"blockInputOverrides": true,
"domain": "climate",
"service": "set_temperature",
"x": 520,
"y": 260,
"wires": [
[]
]
},
{
"id": "dd492b8830442c24",
"type": "time-range-switch",
"z": "99950453472e1ce8",
"name": "0630 Wake Up Time",
"lat": "33.623857",
"lon": "-117.682358",
"startTime": "06:30",
"endTime": "06:30",
"startOffset": "-10",
"endOffset": "1",
"x": 260,
"y": 260,
"wires": [
[
"3cc20e2bc3799ab3"
],
[]
]
},
{
"id": "c260a8236cd2fd60",
"type": "time-range-switch",
"z": "99950453472e1ce8",
"name": "Normal Day",
"lat": "33.623857",
"lon": "-117.682358",
"startTime": "00:00",
"endTime": "23:59",
"startOffset": "",
"endOffset": "",
"x": 310,
"y": 320,
"wires": [
[
"1d53714fc0bcbe96"
],
[]
]
},
{
"id": "1d53714fc0bcbe96",
"type": "api-call-service",
"z": "99950453472e1ce8",
"name": "Normal 70",
"server": "4e3730d1.5341d",
"version": 7,
"debugenabled": false,
"action": "climate.set_temperature",
"floorId": [],
"areaId": [],
"deviceId": [
"b0d7de77f1b180c43b7a8ff91e29537b"
],
"entityId": [],
"labelId": [],
"data": "{\"temperature\":70}",
"dataType": "json",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "test Warming",
"valueType": "str"
}
],
"queue": "none",
"blockInputOverrides": true,
"domain": "climate",
"service": "set_temperature",
"x": 530,
"y": 320,
"wires": [
[]
]
},
{
"id": "67bb0ff1c8601cf7",
"type": "server-state-changed",
"z": "99950453472e1ce8",
"name": "<68 Degrees",
"server": "4e3730d1.5341d",
"version": 6,
"outputs": 2,
"exposeAsEntityConfig": "",
"entities": {
"entity": [
"climate.thermostat_tv_room"
],
"substring": [],
"regex": []
},
"outputInitially": false,
"stateType": "str",
"ifState": "68",
"ifStateType": "num",
"ifStateOperator": "lt",
"outputOnlyOnStateChange": true,
"for": "0",
"forType": "num",
"forUnits": "minutes",
"ignorePrevStateNull": false,
"ignorePrevStateUnknown": false,
"ignorePrevStateUnavailable": false,
"ignoreCurrentStateUnknown": false,
"ignoreCurrentStateUnavailable": false,
"outputProperties": [
{
"property": "topic",
"propertyType": "msg",
"value": "",
"valueType": "triggerId"
},
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
}
],
"x": 110,
"y": 340,
"wires": [
[
"c260a8236cd2fd60"
],
[]
]
},
{
"id": "46612752a4f63ec1",
"type": "server-state-changed",
"z": "99950453472e1ce8",
"name": "<72 Degrees",
"server": "4e3730d1.5341d",
"version": 6,
"outputs": 2,
"exposeAsEntityConfig": "",
"entities": {
"entity": [
"climate.thermostat_tv_room"
],
"substring": [],
"regex": []
},
"outputInitially": false,
"stateType": "str",
"ifState": "72",
"ifStateType": "num",
"ifStateOperator": "lt",
"outputOnlyOnStateChange": true,
"for": "0",
"forType": "num",
"forUnits": "minutes",
"ignorePrevStateNull": false,
"ignorePrevStateUnknown": false,
"ignorePrevStateUnavailable": false,
"ignoreCurrentStateUnknown": false,
"ignoreCurrentStateUnavailable": false,
"outputProperties": [
{
"property": "topic",
"propertyType": "msg",
"value": "",
"valueType": "triggerId"
},
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
}
],
"x": 90,
"y": 200,
"wires": [
[
"dd492b8830442c24"
],
[]
]
},
{
"id": "4e3730d1.5341d",
"type": "server",
"name": "Home Assistant",
"addon": true,
"rejectUnauthorizedCerts": true,
"ha_boolean": "",
"connectionDelay": false,
"cacheJson": false,
"heartbeat": false,
"heartbeatInterval": "",
"statusSeparator": "",
"enableGlobalContextStore": false
}
]
~~~
I have several Shelly Plus wall dimmers which I access via MQTT. It's been a while since I set up the devices. I have a new Shelly Plus wall dimmer switch, and I can't enable MQTT. The shelly app asks for the server which is Mosquitto in a container. I enter the ip address for the Mosquitto broker. I enter the password for the broker. I think I know the user name for the broker, but I'm not certain. My other Shelly devices have the username entered. I'm just flummoxed. Any help would be appreciated.
Thank,
Steve
I'm using flowfuse to connect with a remote nodered instance. I was trying to play around with NodeRed Dashboard 2.0 but whenever I press the open dashboard button, it opens "https://app.flowfuse.com/ui" which gives a 404. Is it possible to open the dashboard for a remote instance through flow fuse?
Sky, the UK's largest paid TV broadcaster, faced significant challenges with their legacy systems—until they discovered FlowFuse! Join us for a special webinar where Sky shares how they overcame these challenges and streamlined their data workflows using Node-RED and FlowFuse.
🗓 Date: January 28, 2025
🕔 Time: 17:00 CET (11:00 AM ET)
⏳ Duration: 60 minutes
Key Speakers:
🔍 Why attend?
In this webinar, you'll hear directly from ZJ and Anthony as they discuss how Sky leveraged FlowFuse to optimize their Node-RED data workflows, overcoming legacy system barriers. The result? Faster, more secure, and more efficient data delivery processes that allowed Sky to innovate at speed and stay ahead of customer demands.
✨ What you'll learn:
This session is perfect for developers, data engineers, and IT professionals looking to optimize their data workflows and drive innovation.
Don't miss the chance to hear Sky’s experts discuss their journey in transforming data delivery!
Register now and join us for an insightful conversation!
Hello All.
I'm new to Nodered in general, and not the best in programming, but I would love some help with some custom code "i'd think ;)"
I have a heatpump that runs on electric, and a woodpellet boiler, and I would like if I could set it up so Nodered could choose to turn on either the heatpump or the boiler, on basics of the cost of electricity. The cost of woodpellets is a known set price that rarely changes.
I have a node that pulls the cost of electricity from a trading platform called nordpool, and the msg.payload is as below.
The same block also has 2 outputs that is on or off depending on true or false status below.
I think I need a function block with custom code - but how should it look like?
node-red-contrib-power-saver is the node, ad it pulls data from nordpool
Thanks in advance :D
{"schedule":[{"time":"2025-01-04T00:00:00.000","value":true,"countHours":18},{"time":"2025-01-04T18:00:00.000","value":false,"countHours":6},{"time":"2025-01-05T00:00:00.000","value":true,"countHours":10},{"time":"2025-01-05T10:00:00.000","value":false,"countHours":5},{"time":"2025-01-05T15:00:00.000","value":true,"countHours":2},{"time":"2025-01-05T17:00:00.000","value":false,"countHours":6},{"time":"2025-01-05T23:00:00.000","value":true,"countHours":1}],"hours":[{"start":"2025-01-04T00:00:00.000","price":1647.61,"onOff":true,"saving":null},{"start":"2025-01-04T01:00:00.000","price":1646.57,"onOff":true,"saving":null},{"start":"2025-01-04T02:00:00.000","price":1645.9,"onOff":true,"saving":null},{"start":"2025-01-04T03:00:00.000","price":1655.74,"onOff":true,"saving":null},{"start":"2025-01-04T04:00:00.000","price":1688.79,"onOff":true,"saving":null},{"start":"2025-01-04T05:00:00.000","price":1734.74,"onOff":true,"saving":null},{"start":"2025-01-04T06:00:00.000","price":1974.53,"onOff":true,"saving":null},{"start":"2025-01-04T07:00:00.000","price":2043.91,"onOff":true,"saving":null},{"start":"2025-01-04T08:00:00.000","price":2106.79,"onOff":true,"saving":null},{"start":"2025-01-04T09:00:00.000","price":2124.4,"onOff":true,"saving":null},{"start":"2025-01-04T10:00:00.000","price":2121.34,"onOff":true,"saving":null},{"start":"2025-01-04T11:00:00.000","price":2106.05,"onOff":true,"saving":null},{"start":"2025-01-04T12:00:00.000","price":2119.03,"onOff":true,"saving":null},{"start":"2025-01-04T13:00:00.000","price":2117.69,"onOff":true,"saving":null},{"start":"2025-01-04T14:00:00.000","price":2166.55,"onOff":true,"saving":null},{"start":"2025-01-04T15:00:00.000","price":2183.86,"onOff":true,"saving":null},{"start":"2025-01-04T16:00:00.000","price":2208.33,"onOff":true,"saving":null},{"start":"2025-01-04T17:00:00.000","price":2797.26,"onOff":true,"saving":null},{"start":"2025-01-04T18:00:00.000","price":2742.13,"onOff":false,"saving":920.1},{"start":"2025-01-04T19:00:00.000","price":2698.19,"onOff":false,"saving":876.16},{"start":"2025-01-04T20:00:00.000","price":2635,"onOff":false,"saving":812.97},{"start":"2025-01-04T21:00:00.000","price":2065.32,"onOff":false,"saving":243.29},{"start":"2025-01-04T22:00:00.000","price":2031.45,"onOff":false,"saving":209.42},{"start":"2025-01-04T23:00:00.000","price":1965.8,"onOff":false,"saving":143.77},{"start":"2025-01-05T00:00:00.000","price":1822.03,"onOff":true,"saving":null},{"start":"2025-01-05T01:00:00.000","price":1721.27,"onOff":true,"saving":null},{"start":"2025-01-05T02:00:00.000","price":1671.15,"onOff":true,"saving":null},{"start":"2025-01-05T03:00:00.000","price":1673.09,"onOff":true,"saving":null},{"start":"2025-01-05T04:00:00.000","price":1639.6,"onOff":true,"saving":null},{"start":"2025-01-05T05:00:00.000","price":1596.12,"onOff":true,"saving":null},{"start":"2025-01-05T06:00:00.000","price":1774.88,"onOff":true,"saving":null},{"start":"2025-01-05T07:00:00.000","price":1764.51,"onOff":true,"saving":null},{"start":"2025-01-05T08:00:00.000","price":1775.85,"onOff":true,"saving":null},{"start":"2025-01-05T09:00:00.000","price":1806.06,"onOff":true,"saving":null},{"start":"2025-01-05T10:00:00.000","price":1767.65,"onOff":false,"saving":240.97},{"start":"2025-01-05T11:00:00.000","price":1811.43,"onOff":false,"saving":284.75},{"start":"2025-01-05T12:00:00.000","price":1758.03,"onOff":false,"saving":231.35},{"start":"2025-01-05T13:00:00.000","price":1727.22,"onOff":false,"saving":200.54},{"start":"2025-01-05T14:00:00.000","price":1656.15,"onOff":false,"saving":129.47},{"start":"2025-01-05T15:00:00.000","price":1526.68,"onOff":true,"saving":null},{"start":"2025-01-05T16:00:00.000","price":1521.23,"onOff":true,"saving":null},{"start":"2025-01-05T17:00:00.000","price":2141.77,"onOff":false,"saving":782.9},{"start":"2025-01-05T18:00:00.000","price":2130.13,"onOff":false,"saving":771.26},{"start":"2025-01-05T19:00:00.000","price":2046.75,"onOff":false,"saving":687.88},{"start":"2025-01-05T20:00:00.000","price":1943.83,"onOff":false,"saving":584.96},{"start":"2025-01-05T21:00:00.000","price":1422.86,"onOff":false,"saving":63.99},{"start":"2025-01-05T22:00:00.000","price":1407.65,"onOff":false,"saving":48.78},{"start":"2025-01-05T23:00:00.000","price":1358.87,"onOff":true,"saving":null}],"source":"Other","config":{"contextStorage":"memory","maxHoursToSaveInSequence":"6","minHoursOnAfterMaxSequenceSaved":"3","minSaving":200,"outputIfNoSchedule":true,"outputValueForOn":true,"outputValueForOff":false,"outputValueForOntype":"bool","outputValueForOfftype":"bool","override":"auto","sendCurrentValueWhenRescheduling":false,"hasChanged":false},"time":"2025-01-05T19:42:32.287+01:00","version":"4.2.3","strategyNodeId":"4a202a5713d9a820","current":false}
Hey everyone, I wanted to share something pretty cool I discovered recently – you can actually run Node-RED on your Android phone without the need for any extra hardware like a Raspberry Pi or PC! 🎉
If you're into IoT, automation, or just love tinkering with tech, this could be a game changer for you. Here's a simple step-by-step guide on how to:
1️⃣ Install and update necessary packages
2️⃣ Set up Node.js and Node-RED
3️⃣ Access your Node-RED server remotely
4️⃣ Keep Node-RED running in the background with PM2
It’s a great option for makers and hobbyists who want to experiment with automation and APIs on a budget – all you need is your Android phone. 💡
Key Benefits:
If you’re interested, I’ve linked a full tutorial here: Watch the full tutorial 🎥
I hope this is helpful to someone out there! Feel free to drop any questions or thoughts below. If this helped, I’d really appreciate it if you like, comment, or share. 🙌
Don’t forget to subscribe to the channel for more tech tutorials: Subscribe to HighVoltages
Happy tinkering! ⚡
#NodeRED #IoT #Automation #AndroidSetup #Makers #TechTutorials
How to Set Up Node-RED on Your Android Phone (No Raspberry Pi or PC Needed!)
Hey all, I'm trying to get weight readings into node red running on a pi 4 and I'm having some issues. The node I found on the node red library doesn't seem to work, it's always outputting 0.
I've verified the load cell and chip work with a python script but not sure how to proceed with getting node red to read it.
From skimming the data sheet, I need to pulse the SCK pin very quickly (1us pulses) while reading the corresponding input from the DATA pin. I couldn't get this to work though, it would sometimes respond with 0s or nothing at all.
Any help greatly appreciated!
edit OK I got it working by interfacing with an arduino nano. the nano is reading the HX711 and outputting the scale readout through serial println and then the pi reads the data though the serial node
I need your help. I am trying to integrate a Reolink camera into Home Assistant and use Node Red to send a picture via pushover when a person is recognized. That works so far.
Unfortunately I can't manage to save the rtsp stream.
I have tried a few things, the approach of ai23 (https://ei23.com/smarthome/ai-human-detection-with-reolink-cameras-and-nodered/) seems to be the best, but I get the following error in the GetVideos subflow
node: GetVideosfunction : (error)
“TypeError: Cannot read properties of undefined (reading 'SearchResult')”
Here the code of the function
const path = env.get("Pfad")+env.get("KameraName")+"/Videos/";
var msg2 = {payload: "mkdir -pp "+path+"; "};
var i = 0;
if (typeof msg.payload[0].value.SearchResult.File !== 'undefined') {
node.warn(msg.payload);
var array = msg.payload[0].value.SearchResult.File;
for(var video in array){
var filename = array[video].name.substring(28, 43);
msg2.payload += "wget -nc \"http://"+env.get("IP")+"/cgi-bin/api.cgi?cmd=Download&token="+flow.get("reolink_token","RAM")+"&source="+array[video].name+"&output="+filename+".mp4\" -O "+path+filename+".mp4; ";
}
return msg2;
}
Maybe someone here can give me the decisive tip