Guahtdim Skrevet 21. mars 2017 Skrevet 21. mars 2017 (endret) * Homeseer på Windows (Windows server 2016 - som gjør at audiodelen ikke fungerer) * RFX (for å hente inn noe Nexa-greier som er lagt opp i kjøkkenet ) * UZB1 * Endel temperaturfølere av typen Viking for å overvåke temp i rom + kjøleskap og fryser. * 3 stykk vanningsfølere (Extra sensors for XH300 Moisture Sensor) (synd 3 er maks) * Z-uno til å overvåke om røykvarslerne slår ut (og mulighet til å trigge røykvarslerne - 10 stykk Deltronic PR-1211 og en CM-02 9V Kontrollenhet) * Fibaro bryter på dagens kontor * 8 Popp 10101 termostater på radiatorer * NodeMcu for overvåkning og viftestyring i mediemøbel og teknisk skap * 1 stykk Fibaro Wall plug for å overvåke tørketrommel (ikke hatt noe problem med de ref Fibaro wall plug og vaskemaskiner) * 1 stykk Qubino ZMNHYD1 for overvåke vaskemaskin(tåler 3500 watt) * Webcam som "leser av" vanntrykksmåler på varmtvannstanken * 2 RPi med RfLink * 4 stykk dørsensorer (Aeotec ZW112) * 2 stykk Auto Ventil - GR-105N (kaldt og varmt vann ute) * 1 Adax Clea Wifi varmeovn som er integrert i HomeSeer med egen plugin Diverse andre sensorer som idag ikke brukes til noe fornuftig, men mer som leketøy de gangene jeg har tid til å leke med dette. Fortsatt så er jeg i prøvestadiet og det som egentlig kjører nå er noen simple notifications for å advare for lav temperatur i spisskamerset, røykvarslere utløst, planter som mangler vann. På sikt så blir det å sette opp noe for varmestyring i huset. Etter å ha fått montert en POPP termostat så har jeg fått godvilje fra min bedre halvdel. Jeg har begynt å kikke på Lua og ser at det kan være litt morsomt å drive med. Som utvikler blir man jo stadig anbefalt å lære seg nye språk, men motivasjonen er ikke stor før man får noe fornuftig å bruke det til. (droppet da jeg gikk over til Homeseer) Til daglig jobber jeg som senior konsulent i Boitano AS. Lager noen plugins til Homeseer. RfLinkSeer - Prøver å få inn RfLink i Homeseer TwilioSeer - Plugin for å få oversendt SMS ved hendelser vha Twilio Og endel til (se i min signatur) Endret 26. oktober 2020 av Guahtdim Oppdatert litt (okt 2020) 2 Siter
KnutM Skrevet 21. mars 2017 Skrevet 21. mars 2017 Kult! Hvilke røykvarslere har du? Er de kablet? Siter
Guahtdim Skrevet 21. mars 2017 Forfatter Skrevet 21. mars 2017 det er trådløse varslere av merket Deltronic PR-1211 og en CM-02 9V Kontrollenhet. CM-02 enheten gir meg mulig til å styre ved hjelp av å føle på en port (åpen/lukket) og trigge med rele. Inntil videre så er Z-Uno koblingen veldig "eksperimentell" siden jeg har det koblet på breadboard. Det blir vel litt lodding etterhvert slik at det tåler litt mer. Siter
KnutM Skrevet 21. mars 2017 Skrevet 21. mars 2017 Ok, vi har (snart) kablet variant med sensorutgang som jeg kan lese leser status fra, men usikker på om jeg kan trigge. Siter
Guahtdim Skrevet 11. august 2017 Forfatter Skrevet 11. august 2017 (endret) Endelig fått laget viftestyring i mediaskapet. Har hatt temperaturer på 46 grader når barna har sett på film. Har nå fått inn en NodeMcu som overvåker temperatur og starter opp 2 120mm vifter (på 9V) når temperaturen går over 34 grader. Har i tillegg gjort det slik at viftene ikke blir slått av før temperaturen er blitt 32 grader forå unngå situasjoner der hvor viften blir stående å virre mellom av og på. Må nok justere inn dette etterhvert. Har lagt til MQTT publishing slik at vifte av/på og temperatur kan legges inn i HomeSeer. Ulempen med Homeseer plugin er at den stjeler mye ressurser på mitt system (men maskinen de kjører på idag er 7 år gammel så jeg er ikke overrasket) Endret 29. mars 2018 av Guahtdim Siter
ZoRaC Skrevet 11. august 2017 Skrevet 11. august 2017 2 timer siden, Guahtdim skrev: Endelig fått laget viftestyring i mediaskapet. Har hatt temperaturer på 46 grader når barna har sett på film. Har nå fått inn en NodeMcu som overvåker temperatur og starter opp 2 120mm vifter (på 5V) når temperaturen går over 34 grader. Har i tillegg gjort det slik at viftene ikke blir slått av før temperaturen er blitt 33 grader forå unngå situasjoner der hvor viften blir stående å virre mellom av og på. Må nok justere inn dette etterhvert. Har lagt til MQTT publishing slik at vifte av/på og temperatur kan legges inn i HomeSeer. Ulempen med Homeseer plugin er at den stjeler mye ressurser på mitt system (men maskinen de kjører på idag er 7 år gammel så jeg er ikke overrasket) Jeg har gjort noe lignende, men foreløpig via JSON-API. Har planer om å endre til MQTT snart, kunne du delt koden din? Siter
Guahtdim Skrevet 11. august 2017 Forfatter Skrevet 11. august 2017 OK, her kan du få koden. Ikke så veldig pen og strømlinjeformet, men den fungerer. Jeg har ikke fått ryddet bort noe forsøk på å subscribe. Den mangler bl.a. en sjekk på om man er koblet mot MQTT ved publish. Slik det er idag så kjører den publish selv om den ikke har noe sted å kjøre publish mot. Men det ser ut som om det fungerer selv om jeg forventet at det skulle feile. #include <ESP8266WiFi.h> #include <OneWire.h> #include <DallasTemperature.h> #include <PubSubClient.h> #define ONE_WIRE_BUS D1 float upperTempLimitFanOn=33; float upperTempLimitFanOff=34; int checkDelay=5000; int sleepDelay=60000; const char* ssid = "WifiNettverkNavn"; const char* password = "NettverkPassord"; const char* mqtt_server = "100.100.100.100"; const char* mqtt_username = "mqtt-user"; const char* mqtt_password = "mqtt-password"; const char* mqtt_topic_temperature = "/sensors/mediamobel/temperature"; const char* mqtt_topic_fan = "/sensors/mediamobel/fan"; WiFiClient espClient; PubSubClient client(espClient); int ledPin = 13; // GPIO13=D7 WiFiServer server(80); OneWire oneWire(ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); char temperatureString[6]; void setup() { Serial.begin(115200); delay(10); pinMode(ledPin, OUTPUT); //digitalWrite(ledPin, LOW); digitalWrite(ledPin, HIGH); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(callback); //WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); Serial.println("Server started"); // Print the IP address Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); DS18B20.begin(); } void setup_wifi() { delay(10); // We start by connecting to a WiFi network Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } void reconnect() { int reconnectTries=0; WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } // Loop until we're reconnected while (!client.connected() && reconnectTries<5) { reconnectTries++; Serial.print("Attempting MQTT connection..."); Serial.println(reconnectTries); // Attempt to connect if (client.connect("ESP8266Client", mqtt_username, mqtt_password)) { //client.publish("outTopic", "hello world"); // ... and resubscribe //bool result=client.subscribe("inTopic"); client.setCallback(callback); //bool result=client.subscribe(mqtt_topic_fan); //if(result){ // Serial.print("subscribing to "); // Serial.println(mqtt_topic_fan); //} Serial.println("connected"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(500); } } } void loop() { if (!client.connected()) { reconnect(); } float temperature = getTemperature(); dtostrf(temperature, 2, 2, temperatureString); client.publish(mqtt_topic_temperature, temperatureString); while(temperatureTooHigh(temperature)){ Serial.println("Temp too high, fanning"); client.publish(mqtt_topic_fan, "1"); digitalWrite(ledPin, LOW); delay(checkDelay); temperature=getTemperature(); dtostrf(temperature, 2, 2, temperatureString); Serial.println(temperatureString); client.publish(mqtt_topic_temperature, temperatureString); } if(fanIsRunning()){ client.publish(mqtt_topic_fan, "0"); digitalWrite(ledPin, HIGH); } Serial.print("temp is "); Serial.println(temperatureString); Serial.println( "Closing MQTT connection..." ); client.disconnect(); Serial.println("Closing WiFi connection..." ); WiFi.disconnect(); delay(sleepDelay); } bool fanIsRunning(){ int val=digitalRead(ledPin); if(val==1) return false; return true; } bool temperatureTooHigh(float temperature){ if(fanIsRunning()){ if(temperature>upperTempLimitFanOn){ return true; } } else{ if(temperature>upperTempLimitFanOff) { return true; } } return false; } float getTemperature() { Serial.println( "Requesting DS18B20 temperature..."); float temp; do { DS18B20.requestTemperatures(); temp = DS18B20.getTempCByIndex(0); delay(100); } while (temp == 85.0 || temp == (-127.0)); return temp; } Siter
Guahtdim Skrevet 11. februar 2021 Forfatter Skrevet 11. februar 2021 (endret) Litt om utvikling: Jeg kjører Hyper-v med to Win10 installasjoner. En for HomeSeer3 og en for HomeSeer4. Mulig HomeSeer3 kommer til å bli avsluttet når jeg engang migrerer til HS4. Jeg har kjøpt egen utviklerlisens. Det spiste opp det meste av donasjonene jeg har fått. Men greit å ha det slik. Verktøyene mine er normalt Visual Studio 2017 (eventuelt 2019), Postman (til å teste web api før det lages i plugin), Notepad++ til alt av annen redigering av filer. Noen ganger også Visual Code siden Notepad++ ikke dekker alt mer. Endret 11. februar 2021 av Guahtdim 1 Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.