Gå til innhold
  • Bli medlem

ZoRaC

Crew
  • Innlegg

    5 782
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    185

Alt skrevet av ZoRaC

  1. Haha! Det der så mer ut som min løsning, ja! Dremel-blad (7 blad, 22-50 mm - regner med noe av det funker bra?) er på vei, sammen med projectbox! Edit: og en pakke "standoffs"
  2. Jeg bruker Monit (kjører på Ubuntu). Har planer om å sette det opp der (via fail2ban) med varsel vis PushOver.
  3. Glemte bilde av "sluttproduktet": Kanskje ikke like pen finish som @xibriz sitt prosjekt, men...
  4. Da var jeg i mål! Her er koden jeg brukter, den har da både en IR-mottaker og en DHT22 temp/fukt tiloblet. // http://platformio.org/lib/show/721/TaskScheduler/examples #include <TaskScheduler.h> void checkIR(); void checkDHT(); void checkWifi(); Task tskCheckIR(1000, TASK_FOREVER, &checkIR); Task tskCheckDHT(30000, TASK_FOREVER, &checkDHT); Task tskCheckWifi(10000, TASK_FOREVER, &checkWifi); Scheduler runner; // Including the ESP8266 WiFi library #include <ESP8266WiFi.h> #include <IRremoteESP8266.h> #include <DHT.h> #include <WiFiClientSecure.h> // Use WiFiClientSecure class to create TLS connection // https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/examples/HTTPSRequest/HTTPSRequest.ino WiFiClientSecure client; // Uncomment one of the lines below for whatever DHT sensor type you're using! //#define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT21 // DHT 21 (AM2301) #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 // Replace with your network details const char* ssid = "...."; const char* password = "....."; IPAddress ip(192, 168, 0, 10); IPAddress subnet(255, 255, 255, 0); IPAddress gateway(192, 168, 0, 1); IPAddress dns(192, 168, 0, 1); const char* host = "homeseer.local"; const int httpsPort = 443; String lastTemperature; String lastHumidity; // DHT Sensor const int DHTPin = D6; // Initialize DHT sensor. DHT dht(DHTPin, DHTTYPE); // IR-sensor int IRPin = D1; IRrecv irrecv(IRPin); decode_results IRresults; void checkIR() { Serial.println("Sjekker IR"); if (irrecv.decode(&IRresults)) { irrecv.resume(); // Receive the next value Serial.println(IRresults.value); sendDataToHS(525, String(IRresults.value)); } Serial.println("END: Sjekker IR"); } void checkDHT() { Serial.println("Sjekker DHT"); String strHumidity = String((int)(dht.readHumidity() + 0.5)); String strTemperature = String(dht.readTemperature()); if (strTemperature != lastTemperature) { Serial.println("Temp er:" + strTemperature + " - Forrige var:" + lastTemperature); sendDataToHS(520, strTemperature); lastTemperature = strTemperature; } if (strHumidity != lastHumidity) { Serial.println("Fukt er:" + strHumidity + " - Forrige var:" + lastHumidity); sendDataToHS(521, strHumidity); lastHumidity = strHumidity; } Serial.println("END: Sjekker DHT"); } void checkWifi() { Serial.println("Sjekker wifi"); if (WiFi.status() != WL_CONNECTED) { Serial.println("Mistet wifi, reconnect..."); WiFi.begin(ssid, password); } while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("END: Sjekker wifi"); } // only runs once on boot void setup() { // Initializing serial port for debugging purposes Serial.begin(115200); delay(10); // Connecting to WiFi network Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.config(ip, gateway, subnet, dns); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println(WiFi.macAddress()); // Printing the ESP IP address Serial.println(WiFi.localIP()); configTime(3 * 3600, 3600, "pool.ntp.org", "time.nist.gov"); dht.begin(); irrecv.enableIRIn(); // Start the receiver runner.init(); runner.addTask(tskCheckDHT); runner.addTask(tskCheckIR); runner.addTask(tskCheckWifi); tskCheckDHT.enable(); tskCheckIR.enable(); tskCheckWifi.enable(); } // runs over and over again void loop() { runner.execute(); } bool sendDataToHS(int dvRef, String data) { if (!client.connect(host, httpsPort)) { Serial.println("Connection failed"); return false; } String url = "/JSON?request=controldevicebyvalue&ref=" + String(dvRef) + "&value=" + String(data); client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Authorization: Basic BASE64-STRENG-HER\r\n" + "User-Agent: ESP8266\r\n" + "Connection: close\r\n\r\n"); Serial.println("Request sent (device " + String(dvRef) + ", data " + String(data) + ")"); while (client.connected()) { String line = client.readStringUntil('\n'); if (line == "\r") { Serial.println("headers received"); return true; break; } } return false; }
  5. Da fungerer det! La inn "kodene" for alle tall fra 0-9 på fjernkontrollen: Så etter hvert som jeg finner ut hva de skal brukes til, så endrer jeg bare navn på dem og legger dem inn i Harmony med egen knapp på skjermen. Koden jeg bruker nå (skal endres en del og slås sammen med DHT22-koden jeg bruker, for jeg skal kjøre begge deler på samme NodeMCU): #include <ESP8266WiFi.h> #include <IRremoteESP8266.h> #include <WiFiClientSecure.h> WiFiClientSecure client; int RECV_PIN = D1; // Update these with values suitable for your network. const char* ssid = "..."; const char* password = "...."; const char* host = "homeseer.local"; const int httpsPort = 443; WiFiClient espClient; IRrecv irrecv(RECV_PIN); decode_results results; long lastMsg = 0; char msg[50]; int value = 0; void setup_wifi() { delay(100); // We start by connecting to a WiFi network Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } randomSeed(micros()); Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); Serial.print("PIN:"); Serial.println(RECV_PIN); } void setup() { Serial.begin(115200); Serial.setDebugOutput(true); setup_wifi(); irrecv.enableIRIn(); // Start the receiver } void loop() { long now = millis(); if (now - lastMsg > 2000) { Serial.print("-"); lastMsg = now; if (irrecv.decode(&results)) { irrecv.resume(); // Receive the next value Serial.println(results.value); sendDataToHS(525, String(results.value)); } } } bool sendDataToHS(int dvRef, String data) { if (!client.connect(host, httpsPort)) { Serial.println("Connection failed"); return false; } String url = "/JSON?request=controldevicebyvalue&ref=" + String(dvRef) + "&value=" + String(data); client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Authorization: Basic BASE64-STRENG-HER\r\n" + "User-Agent: ESP8266\r\n" + "Connection: close\r\n\r\n"); Serial.println("Request sent (device " + String(dvRef) + ", data " + String(data) + ")"); while (client.connected()) { String line = client.readStringUntil('\n'); if (line == "\r") { Serial.println("headers received"); return true; break; } } return false; }
  6. Endelig litt fremgang! Viser seg at Canal Digital-fjernkontrollen jeg har testet med går på Bluetooth, ikke IR! I tillegg lot jeg settingen på Harmony stå til "All", siden jeg skal teste direkte nå, men etterhvert er det hub'en som skal sende signalet. Viser seg at "All" ikke betyr "Alle"! ? Endret til "Remote only" og da blinket LEDen!
  7. @xibriz: hva bruker du til å skjære hull i projectboxen? Går det med tapetkniv, elltmå man over på Dremel, e.l?
  8. https://www.nrk.no/trondelag/stjeler-returnerte-el-varer-1.13489251
  9. Så det du sier er at dette er det som "slår til" når noen går via IP? server_name _; Og at du har en annen konfig for den "ekte", altså med server_name domene.no;?
  10. Supert! Hvordan fester du ESP til project case?
  11. Nice! Legg gjerne ut lenker til delene du har brukt!
  12. Hvordan gjorde du det?
  13. Og jeg kom på at jeg allerede har delt koden min her...
  14. Jeg har kode for det, mener jeg. Kan legge den ut i morgen. Har også for HTTPS, med passord, vet ikke om du bruker det?
  15. Skulle bruke en NodeMCU på et lite prosjekt, men det "klabbet på seg", så det ble en del komponenter etterhvert... Så da kjøpte jeg 2 bokser for å ha det i: "Romstørrelsen" kan enkelt tilpasses (i lengderetningen). http://s.aliexpress.com/QBFzARnI
  16. Oi, da hadde jeg også blitt svett! Bra det bare var en "tulling" fra Danmark og ikke en som sto utenfor og låste seg inn når dere ikke var hjemme...
  17. Ikke direkte automatisert i dag, men ble "reddet" av automatiseringen når vi la oss i går - boddøren sto åpen, med husnøkkelen i! ?
  18. Vi har jo det...
  19. T-We Box (ADB 5743). Dette satte meg på sporet: https://kabel.canaldigital.no/hjelp/tv/brukerveiledninger/t-we-box-adb-5743/fjernkontroll/ og på chat sa de at den gikk på BT.
  20. Prøvde først VS1838B, med både Harmony-kontrollen og Canal Digital sin. Kjøpte deretter TSOP4838 og har testet den med Canal Digitsl sin. Tror kanskje jeg har funnet problemet nå - googlet for å finne ut om CD-kontrollen brukte 38 KHz...viser seg at dritten skal pares mot dekoderen og kommuniserer via BlueTooth! ? Så skal prøve en gang til med noen flere fjernkontroller og de hvordan det går...
  21. Jøss, det var rart. Manualen sier jo at B skal være et alternativ... Flott det løste seg og at du delte løsningen!
  22. Ser jeg var litt kjapp til å poste, så ikke at det var et par variabler der... identifier = enheten som skal motta varslet pri = low, normal, high, emergency (og et par til) msg = meldingen
  23. Jeg får noe lignende ved kall mot andre API av og til. Løser seg med restart av HS...
  24. ZoRaC

    Pollenvarsel

    Å ja, det er en pollentype! Aldri hørt om...! Tror ikke jeg reagerer på den, så da trenger jeg den ikke
  25. Jeg bruker Pushover fra script slik:
×
×
  • 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.