How can initialize relays first time.
-
HI,
I installed this firmware in HAAS and it works fine. It controls my 8 relays without problem and the status remains the same when I restart my nano, it takes the same status.
I have problems only at the start to detect the relays in HASS. I have tried several things but I would like to know how to avoid it if the status has already been detected. In other words, the first initiation.#include <Arduino.h> /** * * REVISION HISTORY * Cette version est fonctionnel et est compatible avec Home Assistant (Sauf l'initialisation) * Utilise le composant 74HC595 pour réduire le nombre de fils. * * DESCRIPTION * Ce firmware utilise 8 sorties pour relais * V_STATUS sert seulement pour le statu de sortie * V_CUSTOM est pour activé les relais. */ // Mettre le mode DEBUG ou l'enlever en commentaire #define MY_DEBUG // Enable and select radio type attached #define MY_RADIO_RF24 //#define MY_RADIO_RFM69 //#define MY_IS_RFM69HW //#define MY_RFM69_NEW_DRIVER // Use new RFM69 Driver (include ATC) //#define MY_RFM69_FREQUENCY RFM69_868MHZ #define MY_REPEATER_FEATURE #include <SPI.h> #include <MySensors.h> #define SN "8_Relais" #define SV "1.2" #define NB_OUTPUTS 8 #define OUTPUT_SER 7 // Serial data comes on this pin #define OUTPUT_RCLK 8 // This is the LATCH pin. Data is released when the pin goes HI #define OUTPUT_SRCLK 4 // Clock pin #define HEARTBEAT_DELAY 3600000 #define pinEnable 6 // C'est dans la conception du board. La pin D6 doit être à 0 pour que le 74HC595 soit enable. byte outputStates; unsigned long lastHeartBeat=0; void changeOutputState(int i, boolean newState){ bitWrite(outputStates, i, newState); // Lock latch digitalWrite(OUTPUT_RCLK, LOW); // Write bits shiftOut(OUTPUT_SER, OUTPUT_SRCLK, MSBFIRST, outputStates); // Unlock latch digitalWrite(OUTPUT_RCLK, HIGH); } void setup() { pinMode( OUTPUT_SER, OUTPUT); pinMode( OUTPUT_RCLK, OUTPUT); pinMode( OUTPUT_SRCLK, OUTPUT); pinMode( pinEnable, OUTPUT); digitalWrite(pinEnable, LOW); // On met ici toujour la pin D6 à LOW } void presentation() { // On envoie ici la version et le nom du Sketch sendSketchInfo(SN, SV); // On présente les relais selon le nombre établi au départ. for (int i=0; i< NB_OUTPUTS; i++){ present(i, S_BINARY ); } } void loop(){ // Send a HeartBeat frequently so Domoticz see us as alive. if (millis() > lastHeartBeat + HEARTBEAT_DELAY){ lastHeartBeat = millis(); sendHeartbeat(); } } void receive(const MyMessage &message){ boolean currentStatus; switch(message.type){ case V_CUSTOM: // Revert output status : currentStatus=bitRead(outputStates, message.sensor); changeOutputState(message.sensor, !currentStatus); break; case V_STATUS: changeOutputState(message.sensor, message.getBool()); break; } // Send new state : currentStatus=bitRead(outputStates, message.sensor); MyMessage msg(message.sensor, V_STATUS); msg.set(currentStatus); send(msg); }
Thank if somebody known
-
I never used HAAS but have you looked at this page for how to set initial state? Then you can just send that to the controller.
1 out of 2
Suggested Topics
-
Forum Theme Problems
Announcements • 8 Apr 2014, 07:05 • hek 8 Apr 2014, 07:05 -
HVAC type sensor in homeassistant
Home Assistant • 17 Aug 2024, 10:50 • tbowmo 17 Aug 2024, 20:51 -
Hi,
Home Assistant • 1 Sept 2024, 20:57 • diltech 1 Sept 2024, 20:57 -
Where to change settings?
Home Assistant • 15 Mar 2023, 14:58 • eiten 25 Jul 2024, 19:19 -
How I delete a node from HA and start over.
Home Assistant • 18 Oct 2024, 02:05 • OldSurferDude 18 Oct 2024, 02:05 -
Node 2 is unknown warning in Homeassistant.
Home Assistant • 10 Mar 2019, 19:27 • badisensors 15 Oct 2024, 20:33