Full Version: Smart Fuses / Switches
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi OP-Community,

I'm at a point where I'd like to replace my classic switch and fuse panel with something smarter. I'd still like to keep (soft) switches there, but it should be also possible to switch everything via SignalK / RasPi. Are there any cheap smart fuses that monitor current and state and send the data via CAN/N2K, I2C, 1wire, SPI, ... to the RasPi?
Is there something like that in the home automation field, maybe realized with arduinos?

i have been playing with node red to monitor battery voltage with Voltage Sensor then if it falls to 11.5v it will turn off things with relays.
still working on it i am limited on programming skills and JavaScript is new to me so writing the functions is difficult ..({}),:;.

i use an arduino for the analog pin "Voltage Sensor" send that to node red, function converts that to volts, displays on dash, passes through to another function to turn off relay if voltage drops to 11.5v or below...

here is an example of a way you can use to controll 4 relays with an esp8266 nodemcu and dashboard post #9
Thanks for the hint! I like the idea of several esp8266 as smart switches.
Has anyone used them to not only switch, but also monitor voltage and current?
Would be nice to reuse old switches as input to esp and switch relay either via switch or wifi.
nodemcu has 1 analog pin so two resistors or a voltage sensor and some math you get voltage..
as for switches there are several ways that's up to you..i am using 3 position switches on/on/off "on auto off" where auto is a relay.
I try to win Andreas Spiess as developer or more as a Mentor for Open plotter related projects. Here some projects from his YouTube CHANNEL

Gesendet von meinem SM-G900F mit Tapatalk

Axel if you wish German resources than look for FHEM for example - Robins Blog FHEM. An Integration to Open Plotter should be possible if you go the Way like Wilhelms direct the way to Signal k

Gesendet von meinem SM-G900F mit Tapatalk
Here is a Screenshot I plan to do anything with the ESP8266. For the moment I do it webbased with Nginx Webserver and mysql database and with socat as virtual COM port adapter.

I use several libraries for this.

For the moment I plan to integrate this to node red and will use another picture java script library as well maybe grata or something like that.

After documentation is ready I will tell you how I did it.

The steps to solve is to pipe the data to Signal K direct.

This is a Screenshot of the layout for the moment. But without documentation it's nothing. I am not an electronic expert and my skills are limited so it takes some time.[Image: 590dca24b08fb20abfd776c06cc64aa5.jpg]

Gesendet von meinem SM-G900F mit Tapatalk
here is a flow to get voltage from arduino A1 using cheap voltage sensor ..

[{"id":"bbc427fe.5a5808","type":"debug","z":"217cab7.d842f54","name":"","active":true,"console":"false","complete":"payload","x":690,"y":500,"wires":[]},{"id":"13174b93.baafe4","type":"arduino in","z":"217cab7.d842f54","name":"house","pin":"1","state":"ANALOG","arduino":"46c1ac0.3d81c54","x":70,"y":500,"wires":[["6554aea5.2ed24"]]},{"id":"6554aea5.2ed24","type":"function","z":"217cab7.d842f54","name":"","func":"\nvar vout = 0.0;\nvar vin = 0.0;\nvar R1 = 30000.0;\nvar R2 = 7500.0; \nvar value= msg.payload;\n\n\n vout = (value * 5.0) / 1024.0; \n vin = vout / (R2/(R1+R2)); \n \nvin.toFixed(1);\n\nmsg.payload=vin;\n\nreturn msg;","outputs":1,"noerr":0,"x":210,"y":500,"wires":[["fd8bf893.fad638"]]},{"id":"c825b564.a05688","type":"ui_template","z":"217cab7.d842f54","group":"d892bd84.4ab9","name":"house","order":1,"width":"4","height":"4","format":"<script src=\"/myjs/tween-min.js\"></script>\n<script src=\"/myjs/steelseries-min.js\"></script>\n<script>\nvar test;\n    (function(scope){ \n        scope.$watch('msg', function(msg) {\n           if (typeof(msg.value) != \"undefined\") test.setValueAnimated(msg.value);\n           //if (typeof(msg.threshold) != \"undefined\") radial4.setThreshold(msg.threshold);\n          // if (typeof(msg.odo) != \"undefined\")radial4.setOdoValue(msg.odo);  \n           //if (typeof(msg.userLed) != \"undefined\") radial4.setUserLedOnOff(msg.userLed);  \n          // if (typeof(msg.trend) != \"undefined\")\n            {\n               // if (msg.trend==1)     radial4.setTrend(steelseries.TrendState.UP);\n                //if (msg.trend==0)     radial4.setTrend(steelseries.TrendState.STEADY);\n               // if (msg.trend==-1)    radial4.setTrend(steelseries.TrendState.DOWN);\n               // if (msg.trend==-2)    radial4.setTrend(steelseries.TrendState.OFF);\n            }\n        });\n    })(scope);\n\n    var sections = [steelseries.Section(0, 25, 'rgba(0, 0, 220, 0.3)'),\n                        steelseries.Section(25, 50, 'rgba(0, 220, 0, 0.3)'),\n                        steelseries.Section(50, 75, 'rgba(220, 220, 0, 0.3)') ],\n\n            // Define one area\n    areas = [steelseries.Section(75, 100, 'rgba(220, 0, 0, 0.3)')],\n\n    test = new steelseries.Radial('test', {\n            gaugeType: steelseries.GaugeType.TYPE2,\n            size: 190,\n            section: sections,\n            area: areas,\n            titleString: \"House\",\n            unitString: \"VOLTS\",\n            threshold: 11.9,\n            minValue: 0,\n            maxValue:  18,\n            thresholdRising: false,\n            //userLedVisible: true,\n           // useOdometer: true,\n            lcdVisible: true,\n           // trendVisible: true\n        });\n      \n                        \n    test.setFrameDesign(steelseries.FrameDesign.BRASS);\n    test.setValueAnimated(0);\n    test.setPointerType(steelseries.PointerType.TYPE9);\n    //test.minValue =(0),\n    //test.maxValue =(24),\n   // radial4.setThreshold(50);\n    //radial4.blinkUserLed(0);\n   // radial4.setOdoValue(0);\n\n\n</script>\n\n<canvas id=\"test\" width=\"190\" height=\"190\"></canvas>\n","storeOutMessages":false,"fwdInMessages":true,"x":490,"y":500,"wires":[["bbc427fe.5a5808"]]},{"id":"fd8bf893.fad638","type":"function","z":"217cab7.d842f54","name":"","func":"msg.value=msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":330,"y":500,"wires":[["c825b564.a05688","7e3550ac.04a2d"]]},{"id":"7e3550ac.04a2d","type":"ui_gauge","z":"217cab7.d842f54","name":"","group":"d892bd84.4ab9","order":0,"width":0,"height":0,"gtype":"gage","title":"Gauge","label":"units","format":"{{value}}","min":0,"max":"18","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":488,"y":461,"wires":[]},{"id":"46c1ac0.3d81c54","type":"arduino-board","z":"","device":"/dev/ttyACM0"},{"id":"d892bd84.4ab9","type":"ui_group","z":"","name":"compass","tab":"bdb776e4.17a1e8","order":1,"disp":true,"width":"6"},{"id":"bdb776e4.17a1e8","type":"ui_tab","z":"","name":"Home","icon":"dashboard"}]

I'm doing a swichboard with this:
I finally got i working.
I can not read current, but I can control the relays thrue node-red dashboard on the raspberry pi and wireless over wifi. With the 8 digital inputs you can put 8 analog swiches to control.
Next step is to get info from Victron Direct on my solarcharger to the Raspberry Pi.
I have not yet found the pgn in signalK for state of relays or swichbank...