Gå til innhold
  • Bli medlem

xibriz

VIP
  • Innholdsteller

    1 040
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    26

xibriz vant dagen sist Desember 3

xibriz hadde mest likt innhold!

Nettsamfunnsomdømme

379 Excellent

Om xibriz

  • Rang
    Avansert medlem

Hjemmeautomasjon

  • System
    openHAB
    Telldus Live!
    Z-Way
    Annet

Nylige profilbesøk

1 690 profilvisninger
  1. xibriz

    Forslag til løsning?

    Jeg håper du slipper å oppleve å miste hele oppsettet ditt slik jeg opplevde, men jeg tar aldri sjansen på noe slikt igjen.
  2. xibriz

    Forslag til løsning?

    Du kan lese om det her:
  3. xibriz

    Måle snødybde

    Jeg får bare støy, ingen reell måling av verken snø eller bakken under. Jeg synes også det er rart. Men hvis jeg skal forske mer på dette må jeg lage en portabel sak for å prøve forskjellige plasseringer. Lurer på hva som hadde skjedd hvis jeg putter den i ett rør som er ca 10cm langt
  4. xibriz

    Forslag til løsning?

    Vel, når min Telldus kræsjet og det ikke var mulig å laste inn noen backup, da hadde jeg definitivt større problemer enn jeg noen gang har hatt på mine servere.
  5. xibriz

    Måle snødybde

    Nå har jeg prøvd sonsoren her Og her Og til slutt her Uten å få noen avstand prøvde også en ny sensor i tilfelle den var defekt, og kontrollerte mot vegg og det fungerte bra. Konkluderer med at hc-sr04 er en blindvei.
  6. xibriz

    Forslag til løsning?

    Jeg anbefaler RazBerry 2 kort på en RaspBerry 3 med Z-way. Da kan man enkelt gå over til openhab hvis man vil ha noe mer komplisert (Jeg mener avansert)
  7. xibriz

    Måle snødybde

    I natt har det snødd. Jeg målte 12cm ca 1 meter ut og mellom 0-5cm der sensoren står. Det var ingen merkbare utslag på sensoren.
  8. xibriz

    Måle snødybde

    Jeg mistenker at sensoren treffer det det ikke er snø. Må nok finne en annen plassering.
  9. xibriz

    Måle snødybde

    Koden, som jeg stort sett stjal på internett, tar høyde for både temperatur å luftfultighet. Det er derfor jeg har en DHT22 der Alle funksjoner under loop er kun for å håntere MQTT og FOTA-oppgradering. #include "DHT.h" #include <ESP8266WiFi.h> #include <PubSubClient.h> #include <ESP8266HTTPClient.h> #include <ESP8266httpUpdate.h> #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 // 3.3v = Ethernet 1 // 5v = Ethernet 2 // GND = Ethernet 7 and 8 #define trigPin 5 //Ethernet 5 #define echoPin 4 //Ethernet 4 #define dhtPin 2 // Ethernet 3 const int FW_VERSION = 1001; WiFiClient espClient; PubSubClient client(espClient); // WiFi and MQTT endpoints const char* ssid = "ssid"; const char* password = "pass"; const char* mqtt_server = "mqtt"; const char* mqtt_topic_fw_version = "esp/sensor3/fw/version"; const char* mqtt_topic_fw_update = "esp/sensor3/fw/update"; const char* mqtt_topic_fw_info = "esp/sensor3/fw/info"; const char* mqtt_topic_temp = "esp/sensor3/temperature"; const char* mqtt_topic_humid = "esp/sensor3/humidity"; const char* mqtt_topic_dist = "esp/sensor3/distance"; DHT dht(dhtPin, DHTTYPE); float lastTime = 0; void setup() { setupWiFi(); setupMqtt(); Serial.begin (9600); delay(10); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); dht.begin(); } void loop() { loopMqtt(); float duration, distance; float speed; float humidity = dht.readHumidity(); // Read temperature as Celsius (the default) float temperature = dht.readTemperature(); digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); speed = 331.4 + (0.606 * temperature) + (0.0124 * humidity); distance = (duration / 2) * (speed / 10000) - 1.5; //Calibrated -1.5 cm if (distance >= 400 || distance <= 2){ Serial.print("Distance = "); Serial.println("Out of range"); } else { Serial.print("Distance = "); Serial.print(distance); Serial.println(" cm"); delay(1000); } Serial.print("Temperature = "); Serial.print(temperature); Serial.print(" *C "); Serial.print(" Humidity = "); Serial.print(humidity); Serial.println(" % "); if(millis() - lastTime >= 5000) { lastTime = millis(); client.publish(mqtt_topic_temp, ((String)temperature).c_str()); client.publish(mqtt_topic_humid, ((String)humidity).c_str()); client.publish(mqtt_topic_dist, ((String)distance).c_str()); } delay(1000); } void setupMqtt() { client.setServer(mqtt_server, 1883); client.setCallback(callback); } void setupWiFi() { delay(10); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void callback(char* topic, byte* payload, unsigned int length) { if (strcmp(topic, mqtt_topic_fw_update) == 0) { String fwURL = ""; for (int i = 0; i < length; i++) { fwURL.concat( (char)payload[i] ); } checkForUpdates(fwURL); } } // Ensure the MQTT lirary gets some attention too void loopMqtt() { if (!client.connected()) { reconnectMqtt(); } client.loop(); delay(100); } void reconnectMqtt() { // Loop until we're reconnected while (!client.connected()) { // Create a random client ID String clientId = "ESP8266Client-"; clientId += String(random(0xffff), HEX); // Attempt to connect if (client.connect(clientId.c_str())) { client.subscribe(mqtt_topic_fw_update); client.publish(mqtt_topic_fw_version, ((String)FW_VERSION).c_str()); } else { // Wait 5 seconds before retrying delay(5000); } } } void checkForUpdates(String fwURL) { String fwVersionURL = fwURL; fwVersionURL.concat( ".version" ); client.publish(mqtt_topic_fw_info, ((String)"Checking for firmware updates.").c_str()); client.publish(mqtt_topic_fw_info, fwVersionURL.c_str()); HTTPClient httpClient; httpClient.begin( fwVersionURL ); int httpCode = httpClient.GET(); if( httpCode == 200 ) { String newFWVersion = httpClient.getString(); client.publish(mqtt_topic_fw_info, ((String)"Current firmware version").c_str()); client.publish(mqtt_topic_fw_info, ((String)FW_VERSION).c_str()); client.publish(mqtt_topic_fw_info, ((String)"Available firmware version").c_str()); client.publish(mqtt_topic_fw_info, newFWVersion.c_str()); int newVersion = newFWVersion.toInt(); if( newVersion > FW_VERSION ) { client.publish(mqtt_topic_fw_info, ((String)"Preparing to update").c_str()); String fwImageURL = fwURL; fwImageURL.concat( ".bin" ); client.publish(mqtt_topic_fw_info, ((String)"Downloading new firmware.").c_str()); client.publish(mqtt_topic_fw_info, fwImageURL.c_str()); t_httpUpdate_return ret = ESPhttpUpdate.update( fwImageURL ); switch(ret) { case HTTP_UPDATE_FAILED: //Serial.printf("HTTP_UPDATE_FAILD Error (%d): %s", ESPhttpUpdate.getLastError(), ESPhttpUpdate.getLastErrorString().c_str()); client.publish(mqtt_topic_fw_info, ((String)HTTP_UPDATE_FAILED).c_str()); client.publish(mqtt_topic_fw_info, ((String)ESPhttpUpdate.getLastError()).c_str()); client.publish(mqtt_topic_fw_info, ESPhttpUpdate.getLastErrorString().c_str()); break; case HTTP_UPDATE_NO_UPDATES: client.publish(mqtt_topic_fw_info, ((String)HTTP_UPDATE_NO_UPDATES).c_str()); break; } } else { client.publish(mqtt_topic_fw_info, ((String)"Already on latest version").c_str()); } } else { client.publish(mqtt_topic_fw_info, ((String)"Firmware version check failed, got HTTP response code").c_str()); client.publish(mqtt_topic_fw_info, ((String)httpCode).c_str()); } httpClient.end(); }
  10. xibriz

    Måle snødybde

    Det kommer (kanskje) litt mindre snø helt inntil porten enn under åpen himmel + alt snøen kan bli komprimert rett forran porten hvis pga. varmluft som siger ut av garasjen. Jeg har ikke oppvarmet garasje, men det er varmere inni en utenfor.
  11. xibriz

    Måle snødybde

    Det var visst en dårlig idè å vinkle sensoren ut. Feilraten spratt i været.
  12. xibriz

    Måle snødybde

    Nå prøvde jeg å vinkle sensoren litt ut slik at den treffer bakken helt utenfor garasjen. Det gikk bra så lenge porten er igjen. De to toppene er når porten er åpen: Her satt jeg søppeldunken under: Det er ikke meldt nedbør den neste uken så det er bare å smøre seg med tålmodighet.
  13. xibriz

    Måle snødybde

    Bilde av vinkel.
  14. xibriz

    Måle snødybde

    Jeg hadde planlagt å peke sensoren litt ut slik at det traff ett punkt ca. 20 cm lenger ut en loddrett. Men siden jeg plagdes med å få sikkelig data på slutten så endte den nok helt loddrett eller bitte litt inn mot garasjeporten. Nå når jeg vet at jeg oppnår best resultat med garasjeporten igjen så kanskje jeg prøver på nytt å vinkle den litt ut. Utenfor sensoren så er raftekassen, ca 1,5 meter opp og 30-40 cm utover. Det er ca. 35-45 cm fra sensoren inn til garasjeporten. Ta tallene med en klype salt Det er kjempelenge siden jeg bestillte den trafoen, men nå var jeg gått tom for mobilladere så jeg hadde ikke noe valg. Jeg mener å huske at jeg leste noen reviews og fant ut at prisen var grei nok til at jeg tør å bruke den. Foreløpig med stikkontakt i garasjen. De ethernet-modulene er kjøpt separat. Altså kortet og pluggen hver for seg. Søk etter "RJ45 Ethernet Connector Breakout Board" på E-Bay. Planen er å vite når jeg står opp om vi må stresse for å rekke å måkke eller ikke. På sikt kan det være fornuftig å stå opp 15 minutter tidligere
  15. xibriz

    Kommunikasjonsproblem

    Ja, jeg tror flere opplever at de spyr ut data alt for ofte. Det står litt om det her:
×