Gå til innhold
  • Bli medlem

Vinnerliste

Populært innhold

Viser innholdet med mest poeng fra 11. mai 2017 i alle områder

  1. Det blir nok det som blir løsningen. Dette begynner å ligne noe, HStouch messig, selv og jeg er håpløs på estetikk.
    2 poeng
  2. 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; }
    2 poeng
  3. 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; }
    2 poeng
  4. Har laget en WebCoRE piston som med en hue lampe og en sonos høyttaler lager mindre plagsomme morgner. Det meste kan settes i variabler her. Tar høyde for hverdag og helg, NRK alltid nyheter i uka, og NRK p1 i helgen. Her kan man bytte til hva man vil. Den starter opp lyset 30 minutter før jeg skal stå opp og går opp til 50% over denne tiden. Når det er 5 minutter igjen så starter sonos opp på 1% og går til 10% på 5 minutter. Faktisk en helt ok måte å våkne på. Feriemodus og lignende får du putte på selv, eller bare velge å pause piston.
    2 poeng
  5. De fleste har en USB-kontroller som f.eks UZB1 og den er som regel koblet til serveren man kjører HS3 på. I noen tilfeller må/ønsker man å ha denne et annet sted. F.eks pga USB-problemer på serveren, serveren står bortgjemt og man vil ha controlleren mer sentralt eller man vil ha muligheten til å enkelt ta med seg controlleren bort til dørlåsen for inkludering, i stedet for å slepe hele PCen bort til ytterdøra. Da kan "USB-over-nettverk" med en Raspberry Pi være løsningen! (denne løsningen skal også kunne brukes med f.eks RFXtrx433E og guiden er i stor grad basert på dette innlegget til @mk1 black limited, som igjen har hentet det fra Bert i RFXCOM) 1. Installere OS på Raspberry Pi Hvis du allerede har en fungerende RPi med OS, hopp til del 2! Du trenger en RPi og et minnekort for OSet. Jeg har valgt å kjøre dette på en egen RPi som ikke kjører noe som helst annet, rett og slett fordi jeg ikke vil at andre tjenester på den skal bruke opp ressursene, slite ut minnekortet eller på en eller annen måte "krasje" den. Det finnes mange OS å velge blant, jeg ville ha et minimalt OS, som bruker minst mulig ressurser og som krever minst mulig vedlikehold (desto mer software den kjører, desto flere potensielle sikkerhetshull dukker opp som krever patching). Valget falt på Minibian - en minimalistisk variant av det mest brukte OSet for RPi. a. Last ned Minibian, pakk ut tar.gz-filen til en tar-fil og pakk ut tar-filen så du får en img-fil (7-Zip kan pakke ut tar.gz) b. Bruk WIN32DiskImager (hvis du har Windows) til å legge img-filen på minnekortet, se guide her. c. Sett minnekortet i RPi'en og sett i nettverkskabel og strømkabel d. Du kan enten koble til skjerm/tastatur eller koble deg til den via SSH (PuTTy f.eks), finn IPen via DHCP-serveren din e. Logg på med root/raspberry (bytt passord ved å kjøre passwd) 2. Konfigurere USB-deling a. Du trenger noen programmer, kjør "apt-get update" og "apt-get upgrade" (det kan hende du må skrive "sudo" foran alle kommandoer, avhengig av ditt oppsett) b. Deretter kjører du "apt-get install raspi-config nano usbutils keyboard-configuration ser2net" c. Valgfritt: kjør "raspi-config" og gå igjennom innstillingene som f.eks hostname, tidssone, tastaturlayout, o.l d. Koble til UZB1 og følg oppskriften som @mk1 black limited har lagt ut her, men på punktet "nano /etc/ser2net.conf", legg til dette i tillegg: 10003:raw:0:/dev/ttyACM0:38400 8DATABITS NONE 1STOPBIT (UZB1 legger seg på "ACM0" i stedet for USB0) e. Gå inn på HomeSeer, plugins, Z-wave, controller management f. Sett opp Z-wave interfacet til å bruke "Ethernet interface", skriv inn IPen til RPi og port 10003 g. Start interfacet og se at det virker. Fremgangsmåten for RFXCOM er omtrent den samme.
    1 poeng
  6. http://kicad-pcb.org/ Koblingsskjema, kretskortutlegg, komponentbiblioteker, sjekk mot koblings og utleggsregler osv. Mao. ganske komplett pakke. Jeg kjører den i WIndows, men Linux skal visst funke like greit. Gratis og open source. Skal du ha noe bedre er det bare å sleike på tommelen og begynne å bla tusenlapper!
    1 poeng
  7. ... den klubben er stor!
    1 poeng
  8. Har ikke prøvd de bladene du linker til, men de fungerer sikkert. Jeg bruker slike "engangs"-blader. Men de er litt skumle fordi de knekker fort hvis man ikke er forsiktig.
    1 poeng
  9. Da er jeg blitt litt klokere på dette. Det er pipe tegnet <|> som virker fint i et script, men tuller til det i HStouch når det legges inn i et tekst objekt og "isHTML" er "true". Antar at det er HTML som ikke tolker pipe riktig. Har forsøkt å bare erstatte pipe symbolet med HTML koden for pipe, men uten hell. Jeg får belage meg på å scripte grafene med mange Y1 eller Y2 linjer på, og hente de inn i HStouch som et bilde. Script som virker i Homeseer/script &nhs.PluginFunction("Device History", "", "CreateChartEx", {"124","{'Title': 'BAD temp/fukt', 'Y1Label': 'Temp', 'Y2Label': 'Fukt','XLabel': 'Date/Time', 'ShowLegend': true, 'DurationType': 2, 'PeriodType': '2', 'Periods': '3', 'Style': 1, 'UseMarkers': false, 'Width': 640, 'Height': 480, 'TransparentBG': false, 'ImageBGColor': 'White', 'AxisLineColor': 'DimGray', 'TickMarkColor': 'DimGray', 'GridCLineColor': 'gray', 'LineWidth': 2}", "42|35", "126"} Men som ikke virker når det skal brukes i HStouch pga pipe: <img src='http://10.0.0.22/[$SCRIPT=&nhs.PluginFunction("Device History", "", "CreateChartEx", {"124","{'Title': 'BAD temp/fukt', 'Y1Label': 'Temp', 'Y2Label': 'Fukt','XLabel': 'Date/Time', 'ShowLegend': true, 'DurationType': 2, 'PeriodType': '2', 'Periods': '3', 'Style': 1, 'UseMarkers': false, 'Width': 640, 'Height': 480, 'TransparentBG': false, 'ImageBGColor': 'White', 'AxisLineColor': 'DimGray', 'TickMarkColor': 'DimGray', 'GridCLineColor': 'gray', 'LineWidth': 2}", "42|35", "126"})]' /> Her er grafen som blir laget av scriptet:
    1 poeng
  10. Takk for det Men med tanke på tidligere prosjekter så tror jeg vi har samme ånden
    1 poeng
  11. Glemte bilde av "sluttproduktet": Kanskje ikke like pen finish som @xibriz sitt prosjekt, men...
    1 poeng
  12. Ref. manualen: There is nothing special about this name, it is just one of a myriad of invalid domain names which never intersect with any real name. Other invalid names like “--” and “!@#” may equally be used.
    1 poeng
  13. Black May 2017, 50% av.slag på HS3pro. Så da ble det en gyldig lisens på meg omsider
    1 poeng
Vinnerlisten er satt til Oslo/GMT+01:00
×
×
  • 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.