Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Actibus

Medlemmer
  • Innlegg

    551
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    16

Alt skrevet av Actibus

  1. Testet akkurat nå, det fungerer hos meg, men kjører forsatt versjon .118 av pluginen. Her er testkoden jeg kjørte, en NodeMCU med en DHT11 sensor, du må evt bytte char* Version = "API1.0.0.118"; til din versjon og const byte BoardAdd = 4; til ditt Board i HS samt endre SendToHS(1, t); SendToHS(2, h); til riktige nr for deg /************************************************************ *Arduino to Homeseer 3 Plugin API written by Enigma Theatre.* * V1.0.0.118 * * * *******Change the values below only************************* */ //************Do not change anything in Here***************** #include <DHT.h> #include <OneWire.h> #include <DallasTemperature.h> #define ISIP 1 #include <EEPROM.h> #if ISIP == 1 #ifdef ESP8266 #include <ESP8266WiFi.h> #include <WiFiUdp.h> #else #include <SPI.h> #include <Ethernet.h> #include <EthernetUdp.h> #endif #endif const byte BoardAdd = 4; #include <Ethernet.h> #include <EthernetUdp.h> #include "DHT.h" #define DHTPIN 5 //D1 #define DHTTYPE DHT11 #define SLEEP_DELAY_IN_SECONDS 60 #if ISIP == 1 byte mac[] = {0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x04}; IPAddress ip(192,168,1,204); //IP entered In HS config. const unsigned int localPort = 8903; //port entered In HS config. IPAddress HomeseerIP(192,168,1,61); //Homeseer IP address IPAddress ServerIP(EEPROM.read(2),EEPROM.read(3),EEPROM.read(4),EEPROM.read(5)); IPAddress gateway(192,168,1,1); IPAddress subnet(255,255,255,0); byte EEpromVersion = EEPROM.read(250); //Nettwork details for ESP8266 char ssid[] = "DIN_SSID"; // your network SSID (name) char pass[] = "DITT_PW"; // your network password #endif //************Do not change anything in Here***************** int FromHS[10]; // * boolean IsConnected = false; // * #if ISIP == 1 // * char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; // * #ifdef ESP8266 WiFiUDP Udp; #else EthernetUDP Udp; #endif // * const unsigned int ServerPort = 8888; // * #endif // * #ifdef ESP8266 void resetFunc() { ESP.restart(); } #else void(* resetFunc) (void) = 0; #endif //*********************************************************** //int sensorPin = A0; // select the input pin for the potentiometer //int ledPin = 13; // select the pin for the LED //int sensorValue = 0; // variable to store the value coming from the sensor DHT dht(DHTPIN, DHTTYPE); void setup() { HSSetup(); //************************ //Add YOUR SETUP HERE; //************************ dht.begin(); } void loop() { #if ISIP == 1 IsUDP(); #endif //************************ //Add YOUR CODE HERE; //************************ /* To Send Data to Homeseer use SendToHS(Device,Value) Eg.. SendToHS(1,200); where 1 is the API device in homeseer and 200 is the value to send To Recieve data from Homeseer look up the FromHS array that is updated when the device value changes. Eg.. FromHS[5] would be the data from API Output device 5 All code that is located just below this block will execute regardless of connection status! You can include SendToHS() calls, however when there isn't an active connection, it will just return and continue. If you only want code to execute when HomeSeer is connected, put it inside the if statement below. */ /*Execute regardless of connection status*/ //sensorValue = analogRead(sensorPin); //digitalWrite(ledPin, HIGH); //delay(sensorValue); //digitalWrite(ledPin, LOW); // delay(sensorValue); //Serial.println(sensorValue, DEC); //Temp int t = dht.readTemperature(); int h = dht.readHumidity(); Serial.print("Temp"); Serial.print(t); Serial.print(" *C "); Serial.print("Fuktighet: "); Serial.print(h); Serial.print(" %Rh"); if (IsConnected == true) { /*Execute ONLY when HomeSeer is connected*/ SendToHS(1, t); SendToHS(2, h); delay(5000); // Serial.println("Entering deep sleep mode for 60 seconds..."); // ESP.deepSleep(SLEEP_DELAY_IN_SECONDS * 1000000, WAKE_RF_DEFAULT); //ESP.deepSleep(10 * 1000, WAKE_NO_RFCAL); //delay(500); // wait for deep sleep to happen } } char* Version = "API1.0.0.118"; byte Byte1,Byte2,Byte3; int Byte4,Byte5; void HSSetup() { #ifdef ESP8266 EEPROM.begin(256); #endif EEpromVersion = EEPROM.read(250); ServerIP = IPAddress(EEPROM.read(2), EEPROM.read(3), EEPROM.read(4), EEPROM.read(5)); #if ISIP == 1 if (EEpromVersion != 22) { ServerIP = HomeseerIP; EEPROM.write(2, ServerIP[0]); EEPROM.write(3, ServerIP[1]); EEPROM.write(4, ServerIP[2]); EEPROM.write(5, ServerIP[3]); EEPROM.write(250, 22); //Store the version where the eeprom data layout was last changed //EEPROM.commit();//kommenter vekk? EEpromVersion = 22; } #ifdef ESP8266 EEPROM.commit(); Serial.begin(115200); // We start by connecting to a WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, pass); WiFi.config(ip, gateway, subnet); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); #else Ethernet.begin(mac, ip); #endif Udp.begin(localPort); Udp.setTimeout(0); delay(1000); SendConnect(); #else Serial.begin(115200); Serial.flush(); Serial.setTimeout(0); delay(1000); Serial.print("Connect "); Serial.println(BoardAdd); #endif IsConnected = false; } void SendConnect() { #if ISIP == 0 Serial.print("Connect "); Serial.println(BoardAdd); #else Udp.beginPacket(ServerIP, ServerPort); //First send a connect packet to the dynamic IP stored in eeprom Udp.print("Connect "); Udp.print(BoardAdd); Udp.endPacket(); if (ServerIP != HomeseerIP) { Udp.beginPacket(HomeseerIP, ServerPort); //Then if the stored value doesn't match the pre-specified one, send a connect packet there also Udp.print("Connect "); Udp.print(BoardAdd); Udp.endPacket(); } #endif } #if ISIP == 1 void IsUDP() { int packetSize = Udp.parsePacket(); if (packetSize) { //LastRcvIP = Udp.remoteIP(); IPAddress remote = Udp.remoteIP(); Byte1 = Udp.parseInt(); Udp.read(); Byte2 = Udp.read(); Byte3 = Udp.parseInt(); Byte4 = Udp.parseInt(); Byte5 = Udp.parseInt(); DataEvent(); } } #else void serialEvent() { while (Serial.available() > 0) { delay(17); Byte1 = Serial.parseInt(); Serial.read(); Byte2 = Serial.read(); Byte3 = Serial.parseInt(); Byte4 = Serial.parseInt(); Byte5 = Serial.parseInt(); DataEvent(); } } #endif /* Used Data Input Cases D Disconnect r reset K Keepalive O PinMode Output Set d Input debounce time set C Connect request c Connection established - report current status */ void DataEvent() { if (Byte1 == BoardAdd) { switch (Byte2) { case 'c': IsConnected = true; #if ISIP == 1 //if (LastRcvIP != ServerIP) { if (Udp.remoteIP() != ServerIP) { //ServerIP=LastRcvIP; ServerIP = Udp.remoteIP(); EEPROM.write(2, ServerIP[0]); EEPROM.write(3, ServerIP[1]); EEPROM.write(4, ServerIP[2]); EEPROM.write(5, ServerIP[3]); #ifdef ESP8266 EEPROM.commit(); #endif } #endif break; case 'C': #if ISIP == 1 //Udp.beginPacket(LastRcvIP, ServerPort); Udp.beginPacket(HomeseerIP, ServerPort); Udp.print("Version "); Udp.print(BoardAdd); Udp.print(" "); Udp.print(Version); Udp.println(" HS3"); Udp.endPacket(); //Udp.beginPacket(LastRcvIP, ServerPort); Udp.beginPacket(HomeseerIP, ServerPort); delay(100); Udp.print("Connected "); Udp.println(BoardAdd); Udp.endPacket(); #else Serial.print("Version "); Serial.print(BoardAdd); Serial.print(" "); Serial.print(Version); Serial.println(" HS3"); delay(100); Serial.print("Connected "); Serial.println(BoardAdd); #endif delay(100); IsConnected = false; break; case 'K': delay(200); #if ISIP == 1 //Udp.beginPacket(LastRcvIP, ServerPort); Udp.beginPacket(HomeseerIP, ServerPort); Udp.print("Alive "); Udp.println(BoardAdd); Udp.endPacket(); if (Udp.remoteIP() != ServerIP) { ServerIP = Udp.remoteIP(); EEPROM.write(2, ServerIP[0]); EEPROM.write(3, ServerIP[1]); EEPROM.write(4, ServerIP[2]); EEPROM.write(5, ServerIP[3]); #ifdef ESP8266 EEPROM.commit(); #endif } #else Serial.print("Alive "); Serial.println(BoardAdd); #endif break; case 'r': delay(200); resetFunc(); //call reset break; case 'O': FromHS[Byte3] = Byte4; break; case 'D': IsConnected = false; break; } } } void SendToHS(byte Device, long Data) { if (IsConnected == true) { #if ISIP == 1 //Udp.beginPacket(LastRcvIP, ServerPort); Udp.beginPacket(HomeseerIP, ServerPort); Udp.print(BoardAdd); Udp.print(" API "); Udp.print(Device); Udp.print(" "); Udp.print(Data); Udp.endPacket(); #else Serial.print(BoardAdd); Serial.print(" API "); Serial.print(Device); Serial.print(" "); Serial.println(Data); #endif } } void SendToHS(byte Device, int Data) { if (IsConnected == true) { #if ISIP == 1 //Udp.beginPacket(LastRcvIP, ServerPort); Udp.beginPacket(HomeseerIP, ServerPort); Udp.print(BoardAdd); Udp.print(" API "); Udp.print(Device); Udp.print(" "); Udp.print(Data); Udp.endPacket(); #else Serial.print(BoardAdd); Serial.print(" API "); Serial.print(Device); Serial.print(" "); Serial.println(Data); #endif } }
  2. Vil jo kun at den skal være på når det er behov, dvs når det er nedbør eller snøsmelting fra tak og så kaldt i bakken at rørene vil fryse. (ligger tidvis med litt motfall, så alltid noe vann i rørene) Ser for meg å legge en type vanndetektor i en av takrennene som kobles til HS. Men jeg trenger da en type som tåler å ligge ganske ubeskyttet i takrenna 24/7 365 dager i året.. Så for meg å kople det gjennom en arduino, men skeptisk til holdbarheten til de sensorene man ser på ebay, type kretskort med flere baner eller 2 pinner.. Noen som har forslag til sensor?
  3. Actibus

    Alexa i Bil

    Hadde gått raskere å trykke på fjernkontrollen, men kult er det?? Noen måte å få de til å reagere raskere på? Kunne man f.eks bare sagt Alexa close garage? Eller må man ha med tell Homeseer xxx?
  4. Actibus

    Nexa AD-146

    Alle transistorbaserte dimmere jeg har prøvd har virket dårlig på LED, jeg bruker Qubino sin og Fibaro Dimmer 2 på LED, de virker uten problemer. Har vel noe med leading vs trailing edge dimming å gjøre
  5. Fra ebay, men ikke så stor som den du har til høyre (har den og liggende), tror den nok er lik den midterste. Den passer greit i veggboksen egentlig, men kombinasjonen power, ESP og Rotary encoderen bygger endel uansett. Har bestilt noen rene esp8266 til noen andre prosjekter.
  6. Da har jeg fått satt dimmeren sammen, og testet mot spottene i vinterhagen, fungerer fint, litt forsinkelse ifht ordinær dimmer, men det er ikke spesielt merkbart egentlig. Beklager vertikal video, men ble filmet som en snap. Nå gjenstår bare å få printet selve dimmerrattet i hvitt, venter på hvit filament
  7. Virker på Type 1 firmware med AC protokoll iallefall (samme som det meste annet fra Nexa)
  8. Jeg bruker en Aeotec dimmer til styring av vifte på badet, der fungerer fint så lenge den står på mer enn 20%, under det så brummer viften. Qubilnou sin dimmer er spesifisert for motorer opptil 100w, men viften min brummer enda mer med den, antagelig forskjell på forskjellige vifter.
  9. Bruker Fibaro sin wallplug på tørketrommelen, men har varmepumpe trommel, så bruker ikke stort, ca 0,7 kWh pr runde
  10. Squeezebox støtter opptil 24bit 192khz med en liten modifikasjon (plugin + USB dac). http://forums.slimdevices.com/showthread.php?94512-Announce-Enhanced-Digital-Output-app-USB-Dac-and-192k-Digital-Ouput Plugin finnes for Homeseer og sikkert andre systemer. Har ikke sjekket det selv, da jeg bare bruker Boom og radio utgavene frittstående.
  11. Wow, den så ganske kul ut ?? Bruker du trykknappene for å velge forskjellige moduser?
  12. Hvis man bygger nytt er det jo ikke noe problem, da kan man bare ha selve rotary encoderen i veggboksen og trekke rør til en sentralt plassert arduino som styrer alt sammen, problemet er jo for ettermontering, da er det enklest med en egen ESP pr dimmer og integrert strømforsyning. Det kjipe er at boksen blir ganske stor for å få plass til strømforsyning+ESP+rotary encoder, er såvidt plass til wagoene bak boksen ser det ut til. Men det er det som er kjekt med 3d skriver, jeg kan tilpasse boksen fortløpende, jeg kommer til å lodde av pinnene på NodeMCU, så ser ut som jeg kan lage boksen litt lavere enn den versjonen jeg la ut her, må se på det en av dagene
  13. Har ikke sett noe på den siden, legger den til for senere Jeg ser et potensielt problem med å kjøre ESP8266 i deep sleep på en dimmer, det vil jo ta tid å gjenopprette WiFi forbindelsen når den kommer ut av søvnen (antar jeg) og man vil jo helst ikke ha noen forsinkelse i det hele tatt. Z-uno er kanskje bedre, men koster jo 25-30 ganger prisen av en ESP
  14. Fikk ikke nodemcu under 30mA pga spenningsreguleringen, har bestilt en ren esp8266 for å teste med den.
  15. Det hadde vært veldig kjekt, problemet er jo at de trenger strøm, hadde vært genialt om de kunne kjørt på batteri. ESP8266 ser ut til å ha litt problemer med deep sleep, det hender visst at den "glemmer" kodingen. Men ser at z-uno kan kjøres i sleep med forbruk på rundt 25uA, det kunne jo funket, hvis den våkner raskt ved input. Kanskje jeg må bestille en etterhvert ?
  16. Dimmerhjulet laget jeg i 123D Design, fordi jeg ville prøve å lage en mer avrundet utgave, men endte opp med flatt hjul, da det ga penest print. Rattet er tilpasset de rotary encoderne jeg har kjøpt på ebay, regner med de fleste der er like, men her er de jeg har kjøpt: http://www.ebay.com/itm/272163443462?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT dimmerratt c3.stl dimmerratt v3.123dx
  17. vedlagt modellen i SketchUp format og stl veggboks.skp veggboks_ny2.stl
  18. Selvfølgelig, skal legge de ut iløpet av kvelden
  19. Ang Visual studio, har du sjekket ut tenScripting? Brukte det noe tidligere, virket veldig bra den gang iallefall, har ikke testet med HS3 http://tenholder.net/tenWare2/tenScripting/Default.aspx
  20. Syntes det er rart ingen produsenter har kommet med noe slikt, kan jo lages med en z-uno, burde ikke vært store problemet..? Men det er kanskje ikke veldig utbredt rundt i verden med roterende dimmere?
  21. På spørsmål fra elektriker bekjent av meg, de installerer x Comfort til vanlig, men har en kunde som vil ha noe rimeligere. Forslag til kontroller som har grei basic funksjoner, er stabil og enkel for kunde å bruke? Skal være z-wave Mtp support for dem igjen, så er vel kanskje Future Home en av få norske?
  22. Fått boksen til å passe ikveld, mangler nå bare lokket på toppen som encoderen skal sitte i. Også må jeg lage en boks som er mindre, til bruk der man ikke trenger integrert power.
  23. Actibus

    Z-wave vannstopp

    Har du forsøkt å måle motstanden i kabelen når du senker den blir våt, ikke sikkert det blir direkte kortslutning, men muligens en målbar endring som kan brukes f.eks sammen med en arduino el.
  24. Har fått kjøpt meg 3D skriver og jobber med dette prosjektet på kveldene nå, mellom oppussing og unger ? Fått laget ratt som passer på encoderen, og holder på å lage en boks som har plass til power, nodemcu og encoderen, bruker power fra Biltema sin USB vegguttak, som jo er godkjent for skjult installasjon, og ikke koster skjorta som Elko sin gjør. Kommer med en oppdatering bare jeg får gjort siste finpussen på boksen ?
×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.