very COOL...you user ioBroker with VIS!!!!
Posts made by maxtox
-
RE: livolo Glass Panel Touch Light Wall Switch + arduino 433Mhz
-
RE: ioBroker = Home automation/Node ALL in ONE/ for noobs https +Let's encrypt/MQTT/Node Red/
Hello colleagues,
i did not forget you ... just a new video showing how to get Let's encrypt certificate in "seconds" without coding etc.. just pressing couple buttons.
Its possible with ioBroker, look here:
-
RE: ioBroker = Home automation/Node ALL in ONE/ for noobs https +Let's encrypt/MQTT/Node Red/
Now i made a video to explain how to use TELEGRAM with iobroker and mysensors
look here
-
RE: ioBroker = Home automation/Node ALL in ONE/ for noobs https +Let's encrypt/MQTT/Node Red/
and screenshots from EDIT page of iobroker.flot:
and picture of the Page when you click "OPEN":
or if you choose AREA you'll see:
-
RE: ioBroker = Home automation/Node ALL in ONE/ for noobs https +Let's encrypt/MQTT/Node Red/
couple screenshots from the WEB interface ioBroker.web
-
RE: ioBroker = Home automation/Node ALL in ONE/ for noobs https +Let's encrypt/MQTT/Node Red/
and here a video how to use MySensors with ioBroker to CONTROL and get the Information from EVERYWHERE:
-
RE: ioBroker = Home automation/Node ALL in ONE/ for noobs https +Let's encrypt/MQTT/Node Red/
[UPDATE]
It runns PRODUCTIVE incl Heatpump, Solar, Wood stove etc..
I devidesd INO apart, so it is easyer to read...
![http://up.picr.de/25928787et.jpg](image url)
Included SERIAL1 , SERIAL2, SERIAL3 ...
![http://up.picr.de/25928809tr.png](image url)
My scope was:
"a" Node which i can connect what i want to and with a simple and smalest modifications, can run EVERYTHING! :-) it should be cheap! it should be easy so even me as noob can understand that 4.it should be a standard protocol, which can be used with all of teh adapters it should have updates in the future 6 can be used with node-red and ioBroker, because everything is integrated there 7 etc..
do's and dont's for me:
do not mess with child ID's and PIN's ->Use something easy show to the server what you have (present) and show what it is!!!! Not just Child ID = 13 -> Send a discription to Server do it universal, so everybody can use it !!! Give it to the comunity to improve it !!!
My steps:
HERE THE USER SHOULD PUT HIS SENSORS IN THE TABLE create a table with pins, so if you change configuration you do not have to mess around with PIN's:
![http://up.picr.de/25928677ol.jpg](image url)
you can put all you attached sensors with S-Types and S_Variables
USER does not have to do enything!!!
present everything (all connected or IF YOU WANT unconnected pins too).
whole void presentation! so just easy and short "i think"Setup (just look in samples of MYsensors and you will see if you need it or not
void setup() { //Serial1.begin(2400); //Serial2.begin(2400); for (int i = 0; i<iomodus_count; i++) //search All Sensor system Ports and set them in the RIGHT way { while (iomodus[i].sensorVersion == "MY_SystemPin") { i++; } //do not waste time to check MY_SystemPin's MyMessage msg(i, iomodus[i].variableType); //************************************************************************************* //************************************************************************************* //********************************Setup RELAY*************************************** if (iomodus[i].sensorType == S_BINARY) { #ifdef RELAY if (iomodus[i].sensorVersion == "RELAY") { pinMode(i, OUTPUT); // Set RELAY to last known state (using eeprom storage) digitalWrite(i, loadState(i) ? RELAY_ON : RELAY_OFF); send(msg.setSensor(i).set(loadState(i)==HIGH ? 1 : 0),false); } #endif // RELAY //********************************Setup BUTTON*************************************** #ifdef BUTTON if (iomodus[i].sensorVersion == "BUTTON") { pinMode(i, INPUT_PULLUP); // Set RELAY to last known state (using eeprom storage) digitalWrite(i, loadState(i) ? 1 : 0); send(msg.setSensor(i).set(loadState(i)==HIGH ? 1 : 0),false); } #endif // BUTTON } //********************************Setup 0-10V Output*************************************** #ifdef PWM if (iomodus[i].sensorType == S_DIMMER) { pinMode(i, OUTPUT); // Set RELAY to last known state (using eeprom storage) } ....
or next example
void ds18b20_temp(int i) { #ifdef DS18B20 if ((iomodus[i].sensorType == S_TEMP) && (iomodus[i].sensorVersion == "DS18B20")) { if (millis() > next_Time[i]) { next_Time[i] = next_Time[i] + 10000; //onewire updates every 10s (10s is MINIMUM) sensor[i].requestTemperatures(); // query conversion time and sleep until conversion completed // int16_t conversionTime = sensor[i].millisToWaitForConversion(sensor[i].getResolution()); // sleep() call can be replaced by wait() call if node need to process incoming messages (or if node is repeater) wait(1000); for (int j = 1; j <= dsSensor_count; j++) { if (dsSensor[j].dsonPinNr == i) { unsigned int dsPin=(iomodus[i].Int_to_HLP + j); float tempC = sensor[i].getTempC(dsSensor[j].dsAdress); if (tempC == -127.00) { /* send(msg.setType(77).set("Error getting temperature"), false); Serial.println("Error getting temperature on Pin"); Serial.print(i); Serial.println("MySensors Pin Nr"); Serial.print(dsPin); Serial.println("Probe Nr."); Serial.print(j); */ } else { MyMessage msg(i, iomodus[i].variableType); send(msg.setSensor(dsPin).set(tempC, 2), false); last_dsTemp[j] = tempC; /* Serial.println("C: "); Serial.print(tempC); Serial.println(" F: "); Serial.print(DallasTemperature::toFahrenheit(tempC)); */ } // dsPin=0; } } } } #endif }
!
Done!
Libraries here(modified 16.06.2016):All sketches:
0_1466331582101_PRODUKTIV_V1.zip -
RE: ioBroker for MQTT, Ethernet W5100, TCP, UDP, SERIAL (OTA soon)
hi... sorry did not know this
would be nice if you could do that... so people can get started with the new stuff !
-
RE: ioBroker for MQTT, Ethernet W5100, TCP, UDP, SERIAL (OTA soon)
hi ... sorry we were trying new things with mysensors and iobroker...
now you can use
TELEGRAMM,
APP @ ANDRID
and MANY new Icons @ VIS...When do you think u can put iobroker on your HP? or do u need something?
-
RE: ioBroker for MQTT, Ethernet W5100, TCP, UDP, SERIAL (OTA soon)
Yes... He will prepare everything and will contact you!!!
Thank you for the offer to do so!
-
ioBroker for MQTT, Ethernet W5100, TCP, UDP, SERIAL (OTA soon)
ioBroker
...domesticate the Internet of Things.is ** THE ** automation Controler, which can manage almost everything. over 500 different Sensors, actuators and scripts)
f.e:
MQTT, REST Api, Node-red, Telegram, Text to Command, Mysensors, Yamaha, Homatic, Simatic S7, DWD, JavaScript, jQuery Mobile, cul, MAX!, EnOcean, Homematic, Philips Hue, KNX, Dreambox, onkyo, sonos, XBMC, pushbullet, pushover, B-Control Energy Manager, PiFace, FRITZ!Box, Geofency and many more...HERE Video HowTo install on Windows
can be installed on WINDOWS, Raspi, Banana Pi etc..
See ioBroker wiki for more information
(English)ioBroker is an integration platform for the Internet of Things, focused on Building Automation, Smart Metering, Ambient Assisted Living, Process Automation, Visualization and Data Logging. It aims to be a possible replacement for software like f.e. fhem, OpenHAB or the thing system by the end of 2014. ioBroker will be the successor of CCU.IO, a project quite popular in the german HomeMatic community.
**
Concept**ioBroker is not just an application, it's more of a a concept, a database schema, and offers a very easy way for systems to interoperate. ioBroker defines some common rules for a pair of databases used to exchange data and publish events between different systems.
**
architecture**
**
Databases**ioBroker uses Redis and CouchDB. Redis is an in-memory key-value data store and also a message broker with publish/subscribe pattern. It's used to maintain and publish all states of connected systems. CouchDB is used to store rarely changing and larger data, like metadata of systems and things, configurations or any additional files.
**Adapters
**
Systems are attached to ioBrokers databases via so called adapters, technically processes running anywhere in the network and connecting all kinds of systems to ioBrokers databases. A connection to ioBrokers databases can be implemented in nearly any programming language on nearly any platform and an adapter can run on any host that is able to reach the databases via ip networking. -
RE: Arduino (MySensors W5100 Gateway) closing TCP connection (2us- NOT 2ms) after each sending of data
Hello Everybody,
checked yesterday and noticed, that if i use JUST STANDARD "TCP W5100) Sketch, it happens (Connection is closing just (2 MICROseconds) after Arduino sends something and just after that it starting to establish a new connection over the next TCP port!
Checked everything with WIRESHARK.
WHEN I USE STANDARD ETHERNET sketch, from the Standard Arduino Library Example:
https://github.com/arduino/Arduino/tree/master/libraries/Ethernet
everything is just fine!
Should i place it as an Issue?
-
RE: ioBroker / NEW Controller Development / collection of FEATURES you/we need
just spoke to the DEV ...the adapter TCP, UDP and SERIAL ir ready!
Will open e new thread when i get the Documentation!
-
Arduino (MySensors W5100 Gateway) closing TCP connection (2us- NOT 2ms) after each sending of data
Hello Everybody,
just noticed with Wireshark, that TCP connection is closing after Arduino sends something!
UDP does not do that with the same sketch!!!!
It is closing after 2 MICROSECONDS not Milliseconds.. so it means, that TCP does not wait for anything and just closing...
Did somebody noticed that too?
i am working with a latest DEV branch.
Thank you in Advance!
-
RE: ioBroker = Home automation/Node ALL in ONE/ for noobs https +Let's encrypt/MQTT/Node Red/
here is the last version of my node... it has everything you "need"...
http://forum.iobroker.net/viewtopic.php?f=35&t=2084
Will carry on, when the Dev has finished ioBroker adapter for mysesnosrs...
-
RE: ioBroker / NEW Controller Development / collection of FEATURES you/we need
just spoke to him (dev of iobroker)...
he is just finishing text2command adapter for ioBroker and after that he will start with developement!
text2command looks good too to me, so just try it
-
RE: ioBroker / NEW Controller Development / collection of FEATURES you/we need
Thank you hek, I forwarded your message to him...
-
RE: ioBroker / NEW Controller Development / collection of FEATURES you/we need
We want to implement feature, which can change the topic, to give it a real name, and to change the name of it. So you do not just see numbers, but you see the name of it and the placement. All if this information is available in iobroker and can be used with VIS, node red, MQTT etc.. Next one should be the OTA feature, signing, battery state... I am sure that he would be glad to develop it with you(@hek ) so if development branch has a new feature everybody can try it with iobroker.
-
RE: ioBroker / NEW Controller Development / collection of FEATURES you/we need
Thank you for your answer. At least you are interested in getting mysensor forward
Already spoke to him, and iobroker already "kind of" supports it over node red adapter...
He just think, that it might be a disadvantage if you need a wire to speak to the gw, so he wants to make an TCP adapter and afterwards MQTT just for my Sensors. By the way... MQTT already running very good with iobroker and my sensors!
He wants just to collect features first, because TCP or UDP is easy to implement,even UDP does not work with the 1.6 Dev brunch (see issue at github).
So it would be good if we (mysensor community) would support him TO SUPPORT US (to write adapter for us) -
RE: ioBroker / NEW Controller Development / collection of FEATURES you/we need
Hello Guys,
No interest in new controller with functions you want and need?
-
ioBroker / NEW Controller Development / collection of FEATURES you/we need
Hello Everybody,
after i got my Arduino Mega R3 working with MQTT and TCP (W5100 GW) i was looking for the controller, which is usable with the newest Dev version of My sesnors , has Node-Red implemented, Has an MQTT server and is EASY to handle with... (no editing of files to get it running etc..)
I tried many of th e controllers, but did not find the 100% one...
Domoticz was quite good, budid not want to work with 1.6 mysesnors, Questions were not answered in the forum
https://www.domoticz.com/forum/viewtopic.php?f=6&t=10197&p=71782#p71782it was a NoGo for me ...
Now i use ioBroker with MQTT, Node-Red, CCU etc.. and it is running perfect, BUT no MySensors adapter yet...
http://www.iobroker.net/?page_id=66&lang=enI contacted the DEV and he agreed to "make " a new adapter.
He jsut asked to collect features WE NEED, so we get the "right/best" Interface for MySensors.
So guys, please post here Features you need in the Format like:
***********************************************************************************
FEATURE NAME - "Ethernet TCP / W5100"
already seen in the XYZ controller (if already exists) - "CALAOS"
I LIKE about this Feature, - "easy connection to my sesnors Arduino"
HOW DOES IT WORK - "connect to arduino with ETHERNET Sketch, it recognizes the arduino and showing ne variables you can use"
I DON'T like about this Feature - "does not recognize 1.6 Mysesnors branch"
HOW SHOULD IT WORK - "connect to arduino with **W5100 **Sketch, it recognizes the arduino and showing ne variables you can use
Needs THIS improvement - "connection shoud be stable when connects to Controller"
***********************************************************************************
-
RE: Home Automation - multi-sensor nodes
please check that out:
tell me if you want to jump in and we make together a solutuion for comunity!
-
ioBroker = Home automation/Node ALL in ONE/ for noobs https +Let's encrypt/MQTT/Node Red/
Hello everybody,
@michai: maybe you jump in and we make a PERFECT solution for everybody!?started this prject 2 weeks ago and didn't have time to post it yet. Additionaly came the issue with payload "clearing" which MOD's here resolved in about 24h !!! PERFECT!
Ma scope was:
- "a" Node which i can connect what i want to and with a simple and smalest modifications, can run EVERYTHING!
- it should be cheap!
- it should be easy so even me as noob can understand that
4.it should be a stndard protocol, which can be used with all of teh adapters - it should have updates in the future
6 can be used with node-red and ioBroker, because everything is integrated there
7 etc..
do's and dont's for me:
- do not mess with child ID's and PIN's ->Use something easy
- show to the server what you have (present) and show what it is!!!! Not just Child ID = 13 -> Send a discription to Server
- do it universal, so everybody can use it !!!
- Give it to the comunity to improve it !!!
My steps:
- HERE THE USER SHOULD PUT HIS SENSORS IN THE TABLE
create a table with pins, so if you change configuration you do not have to mess around with PIN's:
{ S_UNUSED,V_UNKNOWN,"RX","MY_SystemPin" },//D0 DO NOT TOUCH { S_UNUSED,V_UNKNOWN,"TX","MY_SystemPin" },//D1 DO NOT TOUCH ... { S_DIMMER,V_PERCENTAGE,"Test PWM","PWM" }, //D7 : PWM? { S_BINARY,V_STATUS,"RELAY D8","RELAY_1S" }, //D8 : PWM? ... { S_DOOR,V_ARMED,"Digital Ein","Schalter" }, //D11 : PWM? { S_UNUSED,V_UNKNOWN,"free pin","tbd" }, //D12 : PWM? { S_DIMMER,V_PERCENTAGE,"Test PWM","PWM" }, //D13 : PWM? ... { S_UNUSED,V_UNKNOWN,"LEDS_BLINKING_FEATURE","MY_SystemPin" }, //D16/TX2 : =ESP8266; ... . };
you can put all you attached sensors with S-Types and S_Variables
- USER does not have to do enything!!!
present everything (all connected or IF YOU WANT unconnected pins too).
whole vpid presentation! so just easy and short " i think"void presentation() { // Send the sketch version information to the gateway and Controller sendSketchInfo("MQTTduino by JR", "1.3"); //all Ports for (int i = 0; i<iomodus_count; i++) { MyMessage msg(i, iomodus[i].variableType); // Serial.println(iomodus[i].sensorType); // Serial.println(i); if (iomodus[i].description != "free pin") { present(i, iomodus[i].sensorType, iomodus[i].description, false); //Send a et message which shows in controller where Warnings will come send(msg.setType(77).set("for Warnings"), false); } } }
- Setup (just look in samples of MYsensors and you will see if you need it or not
void setup() { for (int i = 0; i<iomodus_count; i++) //search All Sensor system Ports and set them in the RIGHT way { while (iomodus[i].sensorVersion == "MY_SystemPin") { i++; } //do not waste time to check MY_SystemPin's MyMessage msg(i, iomodus[i].variableType); //********************************Setup MAX31855*************************************** if ((iomodus[i].description == "MAX31855") && (iomodus[i].sensorVersion == "CL_Ktype")) { clPin = i; } if ((iomodus[i].description == "MAX31855") && (iomodus[i].sensorVersion == "SO_Ktype")) { doPin = i; } //********************************Setup RELAY*************************************** if ((iomodus[i].sensorType == S_BINARY) && (iomodus[i].sensorVersion == "RELAY")) { pinMode(i, OUTPUT); // Set RELAY to last known state (using eeprom storage) digitalWrite(i, loadState(i) ? RELAY_ON : RELAY_OFF); // send(msg.set(relstate ? RELAY_ON : RELAY_OFF), false); send(msg.setSensor(i).set(loadState(i)==HIGH ? 1 : 0),false); } //********************************Setup FLOWmeter*************************************** //f=4.8* q( l/min) 450 Impulse/Liter, if ((iomodus[i].sensorType == S_WATER) && (iomodus[i].sensorVersion == "IMPULSEcount")) { if ((PULSEdivider[0] > 0) && (i == 2)) {pinMode(2, INPUT_PULLUP); attachInterrupt(0, ISR_0, FALLING);} if ((PULSEdivider[1] > 0) && (i == 3)) {pinMode(3, INPUT_PULLUP); attachInterrupt(1, ISR_1, FALLING);} if ((PULSEdivider[2] > 0) && (i == 21)) {pinMode(21, INPUT_PULLUP); attachInterrupt(2, ISR_2, FALLING);} if ((PULSEdivider[3] > 0) && (i == 20)) {pinMode(20, INPUT_PULLUP); attachInterrupt(3, ISR_3, FALLING);} if ((PULSEdivider[4] > 0) && (i == 19)) {pinMode(19, INPUT_PULLUP); attachInterrupt(4, ISR_4, FALLING);} if ((PULSEdivider[5] > 0) && (i == 18)) {pinMode(18, INPUT_PULLUP); attachInterrupt(5, ISR_5, FALLING);} } //********************************Setup ONEWire*************************************** if ((iomodus[i].sensorType == S_TEMP) && (iomodus[i].sensorVersion == "DS18B20")) { DeviceAddress deviceAddress; ds18x20[i].setPin(i); sensor[i].setOneWire(&ds18x20[i]); // Startup up the OneWire library sensor[i].begin(); if (sensor[i].getAddress(deviceAddress, 0)) sensor[i].setResolution(deviceAddress, 9); } //********************************Setup ANALOG INPUTS for READING VOLTAGE*************************************** if ((iomodus[i].sensorType == S_MULTIMETER) && (iomodus[i].sensorVersion == "VOLTAGE") && (i >= 54) && (i <= 69))//handling NTC Sensor {pinMode(55, INPUT_PULLUP);} //********************************Setup NEXT*************************************** } } //*********************************************************************************************
- LOOP to check all connected (or if you want ALL ) pins i something happened (value changed)
//********************************************************************************************* // NTC (Analog ONLY) INPUTS ON THE BOARD if ((iomodus[i].sensorType == S_TEMP) && (iomodus[i].sensorVersion == "NTC") && (i >= 54) && (i <= 69))//handling NTC Sensor { if (millis() > next_Time[i]) { next_Time[i] = next_Time[i] + 10000; //Update Value every 10s Rt = Rv / ((1024.0 / analogRead(i)) - 1.0); float tempNTC = (B_wert * Tn / (B_wert + (Tn * log(Rt / Rn)))) - Tn + 25.0 + Temp_offset[i];// Here Offset if needed if ((tempNTC > (last_float_value[i] + delta_ntc)) || (tempNTC < (last_float_value[i] - delta_ntc)) || complete_loop) { //MyMessage msg(i, iomodus[i].variableType); Serial.println("tempNTC"); Serial.println(i); Serial.println(tempNTC); send(msg.setSensor(i).set(tempNTC, 2), false); last_float_value[i] = tempNTC; } } }
or next example
//********************************************************************************************* // ONEWire with DALLAS if ((iomodus[i].sensorType == S_TEMP) && (iomodus[i].sensorVersion == "DS18B20")) { if (millis() > next_Time[i]) {next_Time[i] = next_Time[i] +10000; //onewire updates every 10s (10s is MINIMUM) sensor[i].requestTemperatures(); // query conversion time and sleep until conversion completed // int16_t conversionTime = sensor[i].millisToWaitForConversion(sensor[i].getResolution()); // sleep() call can be replaced by wait() call if node need to process incoming messages (or if node is repeater) wait(500); float temperature=sensor[i].getTempCByIndex(0); Serial.print("Temperature for the sensor "); Serial.print(i); Serial.print(" is "); Serial.println(temperature); send(msg.setSensor(i).set(temperature, 2),false); last_float_value[i]=temperature; }}
will post whole sketch at github if somebody wants!
Done!
-
RE: Isue / Bug in message.getInt or getFloat/ payload dos not reinitialized completely?
Update...
to find the BUG maybe it will help:
I noticed that after a float value publisching, the "Dirt" is only staying until the next value:here is ok
0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/11/1/1/15 0;255;3;0;9;Sending message on topic: DOino<>MQTT/0/11/1/1/15 message 1.00
here comes the float:
0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/58/1/1/0 0;255;3;0;9;Sending message on topic: DOino<>MQTT/0/58/1/1/0 message 40.84
here comes the DIRT (8 should be ZERO:
0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/8/1/1/2 0;255;3;0;9;Sending message on topic: DOino<>MQTT/0/8/1/1/2 message 0.84
here is the DIRT gone:
0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/10/1/1/77 0;255;3;0;9;Sending message on topic: DOino<>MQTT/0/10/1/1/77 message 0.00 0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/11/1/1/77 0;255;3;0;9;Sending message on topic: DOino<>MQTT/0/11/1/1/77 message 11 0 0.00
but funy is, that the MQTT Server does NOT get any dirt :
mqtt-0 2016-01-03 09:38:33 info Send to client [mqtt_fd810ccf.027ef] "mqtt/0/DOino<>MQTT/0/8/1/1/2": 0 mqtt-0 2016-01-03 09:38:33 info Send to client [DOino_1] "DOino<>MQTT/0/8/1/1/2": 0
from this float:
mqtt-0 2016-01-03 09:38:33 info Client [DOino_1] _publishes "mqtt.0.DOino<>MQTT.0.58.1.1.0"(number): 40.84 mqtt-0 2016-01-03 09:38:33 info Send to client [mqtt_fd810ccf.027ef] "mqtt/0/DOino<>MQTT/0/58/1/1/0": 40.84 mqtt-0 2016-01-03 09:38:33 info Send to client [DOino_1] "DOino<>MQTT/0/58/1/1/0": 40.84```
-
RE: Isue / Bug in message.getInt or getFloat/ payload dos not reinitialized completely?
please tell us when is solved, because i have made a Sketch to use ALL of the sensors with MQTT! But with this issue NOBODY could yuse it...
Just a part of te code;
void receive(const MyMessage &message) { int childPin = message.sensor; // Serial.println(message.getBool()); // Serial.println(message.sensor); for (int i = 0; i<iomodus_count; i++) ////search All Sensor Variables and set them { //MyMessage msg(i, iomodus[i].variableType); while (iomodus[i].sensorType == S_UNUSED) { i++; } //do not waste time to check UNUSED pins //********************************IF VAR1 = Temp OFFSET existst*************************************** if (message.type == V_VAR1) { if ((childPin == i) && (iomodus[i].sensorType == S_TEMP) && (iomodus[i].sensorVersion == "MAX31855")) { Temp_offset[i] = message.getFloat(); } } if (message.type == V_VAR1) { if ((childPin == i) && (iomodus[i].sensorType == S_TEMP) && (iomodus[i].sensorVersion == "NTC")) { Temp_offset[i] = message.getFloat(); } } //********************************IF VAR2 = LPF (Low Pass Filter existst*************************************** if (message.type == V_VAR2) { //***************Low Pass Filter************** if ((childPin == i) && (iomodus[i].sensorType == S_TEMP) && (iomodus[i].sensorVersion == "MAX31855") && (message.getFloat() <= 1.0)) { ktype_LPF_rate[i] = message.getFloat(); } } //********************************IF V_STATUS or V_LIGHT existst*************************************** if (message.type == V_STATUS) { if ((childPin == i) && (iomodus[i].sensorType == S_BINARY) && (iomodus[i].sensorVersion == "RELAY")) { if (relstate[i] != message.getBool()) { digitalWrite(i, message.getBool() ? RELAY_ON : RELAY_OFF); relstate[i] = message.getBool(); // Store state in eeprom saveState(i, message.getBool()); } } } //********************************IF V_PERCENTAGE or V_DIMMER existst*************************************** if ((message.type == V_PERCENTAGE) && (message.getInt() <= 100) && (message.getInt() != last_int_value[i])) { //***************PWM Rate 0 to 100 (%)************** if ((childPin == i) && (iomodus[i].sensorVersion == "PWM")&& (i<=13)) { pinMode(i, OUTPUT); analogWrite(i, message.getInt()*2.25); // Set Value 0-255 last_int_value[i] = value; } //http://www.instructables.com/id/Analog-Output-Convert-PWM-to-Voltage/ if ((childPin == i) && (iomodus[i].sensorVersion == "PWM_5V") && (i >= 54) && (i >= 69)) { pinMode(i, OUTPUT); analogWrite(i, message.getInt()*2.55); // Set Value 0-255 last_int_value[i] = value; } }
HERE is the problem!!!!
message.getInt()
we can not use this function, if i use later in the void loop this:
MyMessage msg(i, iomodus[i].variableType); send(msg.setSensor(i).set(tempNTC, 2), 0);
because parts of this value float tempNTC are attached to the integer value above! so it would be very cool if you could solve this issue! Thank you!
-
RE: Isue / Bug in message.getInt or getFloat/ payload dos not reinitialized completely?
changed to the NEW ->>>MYTransport.cpp from Pull!
sending -2 and 10 as float to arduino:
13
-2.7313
10.73
im digital13
-2.73
13
10.73
im digital0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/58/1/0/0 as Float!!!!!!!!!!
13
-2.72
im digital -
RE: Isue / Bug in message.getInt or getFloat/ payload dos not reinitialized completely?
same issue!!!!
NO changes! -
RE: Isue / Bug in message.getInt or getFloat/ payload dos not reinitialized completely?
If i send 10 or 100 (so MANY ZERO's) with getFloat
it gets COMPLETly CRAZY!
10073.00 im digital 13 10061.00 13 10062.00 13 10050.00 im pwm 13 10084.00
-
RE: Isue / Bug in message.getInt or getFloat/ payload dos not reinitialized completely?
here anothe example (getFloat)
i'm sending 1.1 and -20.20)geting sometimes right values but sometimes:
im pwm 13 1.18 im digital 0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/13/1/0/3 im pwm
So somehow it doesnt see the "0" and writes something from the last value!
-
Isue / Bug in message.getInt or getFloat/ payload dos not reinitialized completely?
Hi, i think it is abug in message.getInt/ Get Float because... after couple of times from reading a int value it gets the rest of a float before ...
example
it reads allways a value 10 with getIntthen a temp sensor sends a value 47.28
after the getInt value gets 1028
check here:
i send to node 0/13 ALLWAYS "0" and after 10sec "-20.20"
if i take get Float it gets FUNNY numbers like (see in the code):
20.20 or 1.28 etc..im pwm 13 -20.20 im digital 0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/13/1/0/3 im pwm 13 20.20 im digital 0;255;3;0;9;Sending message on topic: DOino<>MQTT/0/58/1/0/0 0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/58/1/0/0 0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/13/1/0/3 im pwm 13 -20.20 im digital 0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/13/1/0/3 im pwm 13 20.20 im digital 0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/13/1/0/3 im pwm 13 -20.20 im digital 0;255;3;0;9;Sending message on topic: DOino<>MQTT/0/58/1/0/0 0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/58/1/0/0 0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/13/1/0/3 im pwm 13 1.28 im digital 0;255;3;0;9;Message arrived on topic: DOino<>MQTT/0/13/1/0/3 im pwm 13 -20.20 im digital
node receives on child id
always the number after the "." (in this case 28) gets as add to int value of 10...So it gets 1028could you please check! can send you my sketch if you like!
-
CLIENT_GW_MQTT / Setup and automatisation of Presentation and set/req
Hi,
just writing a sketch, which i want to share later on wit ALL who wants to have an MEGA as client, sensor node and GW ...
AT first i want to have a overview over all my pins at MEGA 2560 and see what they "are".
So i started with setting a String Array for 80 PINS:
String iomodus[80][3] = { //"presentation", "set/req", "description" {β0β, β0β, βfreeβ}, {β0β,β0β,βfreeβ}, {"S_BINARY","V_STATUS","test switch"}, //D3 {β0β,β0β,βfreeβ}, //D4 ... {β0β,β0β,βfreeβ}, //D80 };
- i want to present sensors ...and here is my problem...
I want to convert String rows to uint8_t to make a procedure to let the sketch present all my sensors. where
i= CHILD_ID
iomodus[i][1st COLUMN] = presentation ID
iomodus[i][3rd COLUMN] = description as Text
ACK= truevoid presentation() { // Send the sketch version information to the gateway and Controller sendSketchInfo("Relay+Max31855", "1.0"); for (int i = 0; i<70; i++) //all Ports D0 bis D69 //present(uint8_t childSensorId, uint8_t sensorType, const char *description, bool enableAck) present(i, iomodus[i][1], iomodus[i][3], true); }
does no work!!!
and says :
**cannot convert 'String' to 'uint8_t {aka unsigned char}' for argument '2' to 'void present(uint8_t, uint8_t, const char*, bool)'**
- Want to set Variables/Topics to my controller with...
iomodus[i][2nd column]
Could you please help me to solv this...
tried 6h everything i knew (pointers etc..) but no luck...
Thank you in Advance!
-
RE: Arduino Mega R3 as Node/GW talking DIRECTLY to MQTT Server
@dakky said:
http://www.mysensors.org/build/ethernet_gateway read the comments
hi...couldn't find any informations about ports for mega R3... please give me your configuration... I think it will help a lot of people!!!!
Thank you!
-
RE: Arduino Mega R3 as Node/GW talking DIRECTLY to MQTT Server
htere are NO comments about W5100...
can you please just give me your setup???
Thank you !
-
RE: Arduino Mega R3 as Node/GW talking DIRECTLY to MQTT Server
WHICH PINS DID you use??? thank you in advance!
-
RE: Arduino Mega R3 as Node/GW talking DIRECTLY to MQTT Server
which sketch are u using for MEGA? can you share it or tell me the link? Have problems with my MEGA using w5100
-
RE: Arduino Mega R3 as Node/GW talking DIRECTLY to MQTT Server
so your setup is following ?
arduino Sensor node with nrf <----> arduino MEGA as GW with w5100 <--> RPI with a "server/Broker"
right?
-
RE: Arduino Mega R3 as Node/GW talking DIRECTLY to MQTT Server
you are already using mega R3 as an client... which "language" are you using to speak to RPI? Which Broker are you using?
did you try ioBROKER?
-
RE: Arduino Mega R3 as Node/GW talking DIRECTLY to MQTT Server
Yes... i understand your point...
BUT
If all nodes could speak MQTT, why not to use this language and let them speak to controler (if to far away over the gateway, which is acting like a repeater)...
I did ask it, because i wanted to use sketches from mysensors combining with the (translator) GW, so i can use both (sensor node + GW) in one Box (Arduino MEGA + W5100 shield). An elt this "box" send the data via ethernet to controller using MQTT protokoll, which is the state of the art.
-
Arduino Mega R3 as Node/GW talking DIRECTLY to MQTT Server
Hi everybody,
just wondering why we/you do not have a Board (f.e. Arduino Mega) which is the sensornode AND Gateway?
I have An arduino Mega setup with about 20 sensors/actuators and would like to Use "ioBroker" iobroker.net with integrated MQTT-server (-client too if you need) and would like to send messages over ethernet (w5100 ethernet board) DIRECTLY to MQTT server without using additional GW...
Can you help me to find the right way to combine MySensors Node+GW in ONE arduino Mega!
Thank you in Advance!