Skip to content
  • 💬 ESP WaterMeter

    OpenHardware.io esp esp8266 arduino fumée bleue jeedom domoticz
    1
    0 Votes
    1 Posts
    49 Views
    No one has replied
  • 0 Votes
    8 Posts
    134 Views
    Nca78N
    @esfnl said in RPi 3 with Domoticz and RF-link (RFXcom) 'TSP-fail': MySensors is supported MySensors is supported if you connect an NRF24 to the RFXCom as instructed in the link, did you ? As explained, it can only receive information, so as you seem to have no gateway to assign node ID you will need to define your nodes as passive nodes and hard code node id : #define MY_PASSIVE_NODE #define MY_NODE_ID 2 #define MY_PARENT_NODE_IS_STATIC #define MY_PARENT_NODE_ID 0
  • 0 Votes
    1 Posts
    2k Views
    No one has replied
  • 0 Votes
    1 Posts
    1k Views
    No one has replied
  • Help in data send to Domoticz

    Development domoticz dht22 soil moisture
    2
    0 Votes
    2 Posts
    1k Views
    gohanG
    Do some debug on the node and on gateway and check if data is actually sent from the node and received by gateway. Also use wait instead of sleep if you are using it as a repeater and relay actuator.
  • Sensebender Micro reports V_HUM > 100

    Hardware domoticz sensebender micro
    7
    2 Votes
    7 Posts
    2k Views
    sburlotS
    @gohan I live in Switzerland, but perhaps my place has more humidity than normal. It's not silly problems we're working on, we're learning all the time!
  • Max. Number of Children?

    Domoticz keba domoticz wallbox
    5
    0 Votes
    5 Posts
    2k Views
    H
    @gohan Yes, they are/were. Alas, case solved... I have lost a line of code somehow. Which in this case meant that presentation was done correctly but these "missing values" were never actually sent, thereby keepin Domoticz from accepting them (seems every parameter to be recognized must actually have been sent once). Anyway, sorry for bothering You and thanks again, Christoph
  • You can send value to the lcd and domoticz gateways?

    Domoticz domoticz
    1
    0 Votes
    1 Posts
    958 Views
    No one has replied
  • 2 Votes
    6 Posts
    2k Views
    A
    Hi @GertSanders, Do you happen to still have the Eagle project files from version 3 you created and shared on OSH Park? I'd like to add a set of pads for the mini smd version of the NRF24L01. If not, I'll just use the version 2 files from openhardware.io and try my best to recreate the changes you made between them. Kind regards, AH
  • Sensor for pellet burner

    General Discussion pellets mysensors domoticz
    5
    0 Votes
    5 Posts
    2k Views
    AWIA
    @pugho You can do a lot of customization in Domoticz like custom icons etc. Just browse the wiki and forum (and don't get distracted ;-))
  • No ID assigned by gateway.

    My Project dimmer domoticz ac 220v
    7
    0 Votes
    7 Posts
    3k Views
    Suresh MaliS
    After filding around a lot with the MySensor2.0 lib and spending my whole weekend, when I could not get things going I finally switched back to MySensors1.5.4. After that I made quick progress and my node was on network. Here is the link below of a working Dimmer node. https://www.youtube.com/embed/N_Zx1xARwtM
  • 0 Votes
    2 Posts
    1k Views
    clivecC
    Damm I am trying to get this working with a Arduino pro mini ,,but no luck wanted to use it in the car .. How do you wire the NRF24L01+ ??? N-Channel Mosfet s ??? model number please any help much appreciated I have tried mosfets >>>irf510n
  • 0 Votes
    37 Posts
    10k Views
    alowhumA
    :-D Wow, what an amazing design.
  • 0 Votes
    8 Posts
    4k Views
    micahM
    @hek Oh, I didn't know I needed to use both. Well I tried a million combinations after seemingly reading everything on the subject, and I still couldn't get {int + char + int} converted into a char[] using strcpy and strcat for some reason my brain is just not wrapping itself around the concept today... maybe I'll come back to it tomorrow. In the mean time, I tried the following and it worked. char buf[20]; sprintf(buf, "%d.%d", Alarm1_Time_Local[0], Alarm1_Time_Local[1]); send(MySensors_MSG_Alarm1_Time.set(buf), true); I've read that using sprintf increases the size of your sketch... but for now I'm fine with it, since it works and I can move on to being creative and productive.. lol
  • 0 Votes
    16 Posts
    7k Views
    D
    Good to know, indeed my setup is working now with stable libraries thanks to this helpful community. I'll go back later to development libraries to see if I'm able to work with it as well.
  • Curtain Control Node.

    My Project domoticz curtain control mysensors node
    51
    8 Votes
    51 Posts
    20k Views
    xydixX
    @adds666 I am still in "testing mode". I had some problems with the node, it stoped receiving messages but did always work with the button. Yesterday i built a new node and uploaded the sketch and it seems to work better. Here is the sketch i use, I changed the pin for the button due to missing digital pins on my pcb. And I am back on using digital pins for the stepper driver for the same reason. I greyed out buttonpin 2. I don't think it is needed. I also greyed out the heartbeat-part as I had problems. Just for testing. Don't know if it is suitable when using Home Assistant. /* PROJECT: MY Sensors curtain controller PROGRAMMER: AWI DATE: march 11, 2016 FILE: AWI stepper1.ino LICENSE: Public domain Hardware: ATMega328p board w/ NRF24l01 and MySensors 2.0 (Development) Special: uses AccelStepper library Summary: Curtain control with stepper motor. Manual operation with 1 push button Calibration with manual button Remarks: Fixed node-id Change log: 20160312 - Cleanup */ // Enable debug prints to serial monitor #define MY_DEBUG #define MY_NODE_ID 8 // fixed node number // Enable and select radio type attached #define MY_RADIO_RF24 #define MY_RF24_PA_LEVEL RF24_PA_HIGH //#define MY_RADIO_RFM69 #include <SPI.h> #include <MySensors.h> // stepper library #include <AccelStepper.h> // http://www.airspayce.com/mikem/arduino/AccelStepper/ #define HALFSTEP 8 // Stepper uses "Halfstep" mode // button library // used for: // - manual open close - single click: close/ stop/ open/ stop // - calibration - after long press: open calibarion- until single press - closed calibration - until single press (stop) #include <Button.h> // https://github.com/JChristensen/Button - Använd gammal version. testat med V0.9 och det funkar #define CHILD_ID 1 // Id of the sensor child #define SN "Curtain control" #define SV "1.0" #define buttonPin1 A0 // Arduino pin connected to buttonPin1 //#define buttonPin2 A0 // Arduino pin connected to buttonPin2 (fixed to ground) // Motor pin definitions #define motorPin1 2 // IN1 on the ULN2003 driver 1 #define motorPin2 3 // IN2 on the ULN2003 driver 1 #define motorPin3 5 // IN3 on the ULN2003 driver 1 #define motorPin4 6 // IN4 on the ULN2003 driver 1 //const unsigned long heartbeatInterval = 1 * 3600UL * 1000UL ; // heartbeatinterval //unsigned long heartbeatCounter = 0 ; // // helper routines to store and retrieve long in mysensors EEPROM union { // used to convert long to bytes for EEPROM storage long longInt; uint8_t LongByte[4]; } convLongInt ; void saveStateL(int EEposition, long StateL){ convLongInt.longInt = StateL ; for (int y = 0; y < 4 ; y++){ // convert to bytes saveState(EEposition + y , convLongInt.LongByte[y]) ; } Serial.print("State saved: "); Serial.println(StateL); } long loadStateL(int EEposition){ for (int y = 0; y < 4 ; y++){ // convert from bytes convLongInt.LongByte[y] = loadState(EEposition + y) ; } Serial.print("State read: "); Serial.println(convLongInt.longInt); return convLongInt.longInt ; } // Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48 AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4); // Initialize button active low, debounce and internal pull-up Button myBtn(buttonPin1, true, true, 40); // Initiate the button (pin, pull_up, invert, debounce_ms) MyMessage percentageMsg(CHILD_ID, V_PERCENTAGE); // used to send updates to controller const long maxRun = 4000000L ; // maximum runway long setPosition = 0 ; // remembers set position, need to be saved in EEPROM const int setPositionEE = 4 ; // eeprom location long openPosition = 0 ; // Position at open, need to be saved in EEPROM? const int openPositionEE = setPositionEE + 4 ; // eeprom location long closedPosition = 120000UL ; // Position at full close, need to be saved in EEPROM const int closedPositionEE = openPositionEE + 4 ; // eeprom location unsigned long idleTimer = millis() ; // return to idle timer unsigned long idleTime = 100000UL ; // return to idle after 100 secs unsigned long printTimer = millis() ; // print timer unsigned long printTime = 1000UL ; // print after 1 secs enum position_t {Open, Close, Idle, Running} ; position_t lastDirection = Open ; // lastDirection only for buttonpress position_t runStatus = Idle ; // indicates current status for running motor. used for status reporting to controller enum State_t {sIdle, sCalibrateOpen, sCalibrateClose} ; State_t State = sIdle ; void setup() { // setup buttons pinMode(buttonPin1, OUTPUT); stepper1.setMaxSpeed(1000.0); stepper1.setAcceleration(1000.0); //saveStateL(closedPositionEE, closedPosition) ; // INIT: save closed position in EEPROM closedPosition = loadStateL(closedPositionEE) ; // need to get last values from EEPROM and assume the current position is correct setPosition = loadStateL(setPositionEE) ; stepper1.setCurrentPosition(setPosition ); }//--(end setup )--- void presentation() { present(CHILD_ID, S_COVER, "Curtain"); // Window Cover sub-type, commands: V_UP, V_DOWN, V_STOP // Register the LED Dimmable Light with the gateway sendSketchInfo(SN, SV); } void loop() { unsigned int now = millis() ; // current time for loop // simple state machine for button press myBtn.read(); switch (State) { // Idle state, waiting for some action // - button press // - idleTimer case sIdle: if (myBtn.wasReleased()){ // idle Serial.println("Button release") ; // if running stop if (stepper1.isRunning()){ setPosition = stepper1.currentPosition(); stepper1.moveTo(setPosition) ; // move to current position (was already there..) } else if (lastDirection == Open) { stepper1.moveTo(closedPosition) ; lastDirection = Close ; } else { // lastDirection == Close stepper1.moveTo(openPosition) ; lastDirection = Open ; } } else if (myBtn.pressedFor(3000)){ // move to calibratete state with long press Serial.println("Button press long") ; idleTimer = now ; // return to idle after ... State = sCalibrateOpen ; stepper1.move(-maxRun) ; // let the stepper open with maximum } break ; // if not running and last action was open close ; else open // if longpress Calibrate open case sCalibrateOpen: // calibration going on if (myBtn.wasPressed()){ stepper1.setCurrentPosition(0 ); // set new 0 position ?? openPosition = setPosition = 0 ; State = sCalibrateClose ; // next is close calibarion stepper1.move(maxRun) ; // let the stepper close with maximum } else if (now > idleTimer + idleTime) { // timer expired -> abort calibration State = sIdle ; } break ; case sCalibrateClose: // calibrate closed position, end with keypress if (myBtn.wasPressed()) { closedPosition = setPosition = stepper1.currentPosition() ; saveStateL(closedPositionEE, closedPosition) ; // save closed position in EEPROM State = sIdle ; stepper1.moveTo(openPosition) ; // return to open after calibration } else if (now > idleTimer + idleTime) { // timer expired -> abort calibration State = sIdle ; } break ; default : break ; } // power off stepper if not running (no need to reenable)) if (!stepper1.isRunning()){ if (runStatus != Idle){ // there was a change in runningstatus, so report to controller setPosition = stepper1.currentPosition() ; // store in EEPROM and report ready to controller saveStateL(setPositionEE, setPosition) ; send( percentageMsg.set((100 * setPosition)/(closedPosition - openPosition))) ; runStatus = Idle ; } stepper1.disableOutputs(); } else { runStatus = Running ; } stepper1.run(); /* if (printTimer++ > now + printTime){ printTimer = now ; Serial.println(stepper1.currentPosition()); } */ } // This is called when a message is received void receive(const MyMessage &message) { // We only expect few types of messages from controller, check which switch (message.type) { case V_PERCENTAGE: // Curtain should be opened stepper1.moveTo(message.getInt() * (closedPosition - openPosition)/100); Serial.print("Message: "); Serial.print(message.sensor); Serial.print(" , value: % "); Serial.println( message.getInt()); Serial.print("Moving to: "); Serial.println(message.getInt() * (closedPosition - openPosition)/100); break ; case V_STATUS: // Curtain should be opened or closed full stepper1.moveTo((message.getInt() == HIGH)?openPosition:closedPosition); Serial.print("Message - valid: "); Serial.print(message.sensor); Serial.print(" , value: % "); break ; default : // not recognizable message Serial.print("Message - valid: "); Serial.print(message.sensor); Serial.print(", Unrecognized "); break ; } }
  • 0 Votes
    10 Posts
    8k Views
    C
    Hi This is a typical homer project in that I spend half an hour here and half an hour there so it moves very slowly! What I have so far: Plan for 10-15 zone heating control based on standard Y plan heating system. I need to generate control signals for: Boiler on DHW valve on Heating valve on *12-13 radiator valve heads (24v DC) a) Domoticx setup based on a list of zones - the lua scripts are maybe 75% done and working so far - needs tweaks and tidying up before its shareable sensibly. b) Battery powered sensor/ display node arduino based. Has dallas DS1820 temp sensor, 128 x 64 Oled display and three buttons using mysensors 2.4Ghz radio. It links with domoticz, displays (on demand) the room temp, setpoint and the buttons allow local control - boost/cut temp to xDeg for 1 hr. The sensor runs off 2 x AAA cells and takes 11uA standby with pulses of 25mA so could just run off a coin cell for 12-18months. The code is 80-90% complete but haven't started a PCB yet. c) Dallas one wire sensors for some rooms where I am not bothering with a local display node. Also to be used for DHW and outside temperature for display/prediction. d) Some 24vDC thermal actuators for the radiators - that's the biggy and now won't happen till next year and the heating is off. I also need to replace some valve bodies on some radiators so it will need (at least) a day off work at some point to do all the plumbing. e) Android front end based on Netio - tried open remote but found that a bit long winded. This is 20% complete - just done 2 zones to prove the concept. This will drive a wall mounted tablet replacing the old room stat and also be the interface from my phone etc when away from home. f) I haven't started boxing up the RPI - it needs a 24cDC 2-3 amp PSU for the radiator valves and wiring to all rooms - yuk! This may wet your appetite but it is very much a work in progress and wouldn't make much sense if I published it yet. I'll post bits as they become meaningful - but its a way away yet. If nothing else it tells you what's possible. That has taken me quite a bit of experiment to get this far.I've tried at least 5 different home automation packages and have now settled on Domoticz and Netio front end. At least - now I am on the implementation phase! Regards Coppo
  • One for All

    Domoticz domoticz
    6
    0 Votes
    6 Posts
    3k Views
    fetsF
    I had to get domoticz beta version to get scene/group available, can't remember what version I had previously. Anyway group is exactly what I wanted ....
  • 0 Votes
    2 Posts
    4k Views
    hekH
    Yes, it is needed. Almost similar request here: http://forum.mysensors.org/topic/1337/request-new-sensor-type-thermostatically-controlled-switch
  • 0 Votes
    2 Posts
    2k Views
    GizMoCuzG
    The distance sensor is supported in the beta version of Domoticz

24

Online

11.7k

Users

11.2k

Topics

113.1k

Posts