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

Christoffer

Medlemmer
  • Innlegg

    350
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    7

Alt skrevet av Christoffer

  1. Ville brukt shelly sine som er godkjent for 16A. Antar du har en standard tank på 2kW. Feks dette, da har du mulighet for WiFi og kabel samt skyløsning og lokal mqtt. Såvidt jeg vet finnes det ferdig integrasjon til home assistant også. https://www.dustinhome.no/product/5011256485/pro-1pm-din-wifi-1-ch-16a-power-metering-red?ssel=true&gclid=Cj0KCQjwsrWZBhC4ARIsAGGUJuqviQrwUj8EL0Lsro3QisNAkDIU6mA12B97QLczhR_pVo_71FRoN0EaAuwlEALw_wcB
  2. Jeg har brukt to slike fra aliexpress hjemme hos meg i seks måneder uten noen hickups. Den bare blinker og gjør det den skal. Hvis du monterer noe annet som kan lese modbus i nærheten av skapet er det jo ikke noe stress, eneste grunnen til at jeg gjorde det er at jeg kjører alt i VM'er og kabling av ethernet er ofte lettere enn modbus i mine øyne. Her er en liste over alle dataene du kan lese ut over modbus på denne modellen, men alle bør som minimum ha strøm og spenning per fase i tillegg til nåværende effekt og akkumulert energi. Denne har mye mer data hvis du vil gå all in. https://gavazzi.se/app/uploads/2020/11/em111_em112_et112_cp.pdf
  3. Hei! Første tanken som slo meg er å bruke en slik: https://www.onninen.no/en/carlo-gavazzi-energy-meter-em330-3v-5a-lk-b-3-din-s1-pfb/p/CGR745 Koblet til en slik: https://www.aliexpress.com/item/32514008468.html?spm=a2g0o.detail.1000023.13.63337c75kvPsmP Og så sette opp dette scriptet som jeg har laget og nå bruker for modbus til et flexit aggregat. https://github.com/christofferr/modbus2mqtt-bridge Her vil du få ut alle dataene via MQTT og så kan du legge de rett inn i en influxdb via hva du nå måtte ville bruke til det.
  4. Denne støtter vel Modbus og ikke M-bus som er det som er i måleren så det fungerer nok dårlig.
  5. På releer er det da helt normalt å ha forskjellige kurser og spenningsnivåer, men på Shelly så går ikke det siden L er koblet sammen internt.
  6. Det er fire separate kontaktsett, men L som er merket på Shelly Pro 4PM er koblet sammen internt som betyr at skal dette være etter boken må du ha en 16A sikring til VVB og en til bassenget etter Shelly og muligens en 40A foran den. Har selv et par 4PM men bruker de kun til å styre ting på samme 16A kurs.
  7. Ikke så mye å komme med, men her kjører jeg aeotec z-stick rett på RPi 4 og det er ingen problemer med det.
  8. Hei, ja den har fire "brytere" den kan styre uavhengig. Men alt må vær på samme kurs og fase, som i ditt eksempel nok ikke går da jeg antar disse enhetene er på forskjellige kurser. Det du derimot kan gjøre er å la den styre andre releer, da kan du mikse en fase, tre fase og kurser men du mister da muligheten for effektavlesning. Har ikke sett på 1 og 2 kanals utgavene så her må jeg svare ut fra 4 kanalserfaringene. 4 kanalsutgaven har også fire innganger du kan programmere til å styre utgangen enten slik at så lenge inngangen er aktivert så er utgangen aktivert, eller vha puls slik at den endre fra av til på eller på til av når det kommer en puls såkalt toggle modus. Og du kan sette den til å kun sende status over nettverket uten å gjøre noe slik at du kan bruke den til noe helt annet, dette settes per input og er veldig lett å sette opp i nettleseren. Stod tidligere at den skulle komme inn i begynnelsen av mai også så den datoen har blitt flyttet ihvertfall en gang.
  9. 1 kanal er nok i ditt tilfelle. Har selv Shelly 4pm Pro og den har vært fin og stabil. Pm Pro utgavene med 1 og 2 kanaler er ikke lansert eller ikke tilgjengelig for øyeblikket. Den kan erstatte uret, men du kan beholde den bryteren som er montert, samtidig så får du lokal betjening noe du ikke får på aeotec HD.
  10. Lite sannsynlig, mest sannsynlig er den satt som sikkerhetsbryter for bassenget.
  11. Nr 7 er bare en helt vanlig bryter og blir ikke styrt av noe annet enn hendelen på fremsiden. Hva den svarte styrer er litt uvisst siden den kun kan styre maks 10A, et basseng pleier å trekke mer enn det.
  12. Hvis jeg forstår deg korrekt så vil du sette inn en dobbel bryter i den nederste posisjonen. Da vil dette gå med litt endringer, for å få det slik du vil må du bruke en topolt bryter med dekselet til en slik bryter du nevner. Dette fordi du vil trenge to separate kontaktsett på bryteren. Det ene kontaktsettet kobler du mellom L og Elko EasyPIR inngangen (1) for permanent på (dette kan stortsett gjøres med alle former for PIR da du da kan koble den i parallel med selve PIRen, har selv gjort dette i en garasje uten smart lys). Det andre kontaktsettet kobler du mellom utgangen på EasyPIR og lyskilde nr 2 og nr 3.
  13. Den er koblet til en 16A kurs og alle kontaktsettene må komme fra samme kurs ettersom L kontaktene på den er koblet sammen internt.
  14. Nei, de erstatter ikke sikringer. De brukes etter sikringer, men pass på feks 4pro pm så må alle kontaktsettene ha forsyning fra samme kurs da L punktet er koblet sammen internt.
  15. Ja, de står rett på Din-skinnen. Men har også tenkte å montere en i en egen kapsling i en bod jeg har.
  16. Ifølge manualen så er det kun tilkoblinger for N, L og GND på den europeiske versjonen. Er lastene også 3 fase?
  17. Det letteste er å anskaffe seg Easy trigger pluginen, den kan gjøre denne operasjonen uten script. Ellers må du lage et script som kjører den sjekken du kjører der og så setter en binær virtuell device som sier temp over eller temp under og så bruker du det i eventet ditt.
  18. I teorien så kan du koble disse to lederene som skal kortsluttes til OUT1 på Fibaro Smart Implant men du må sjekke hvilken spenning det er. Maks spenning er 30VDC eller 20VAC
  19. Bruker 2 stk 4pm Pro og de virker akkurat slik de skal. Jeg bruker for øyeblikket WiFi og MQTT og skyløsningen deres og alt virker sammen. På de enklere utgavene finnes det alternative fw også, men har ikke funnet slike til de som heter pro.
  20. // ArduinoMqttClient - Version: Latest #include <ArduinoMqttClient.h> #include <WiFiNINA.h> #include <ArduinoMqttClient.h> ///////please enter your sensitive data in the Secret tab/arduino_secrets.h char ssid[] = SECRET_SSID; // your network SSID (name) char pass[] = SECRET_PASS; // your network password (use for WPA, or use as key for WEP) int status = WL_IDLE_STATUS; // the Wifi radio's status // ---------------------------------------------------------------- // // Arduino Ultrasoninc Sensor HC-SR04 // Re-writed by Arbi Abdul Jabbaar // Using Arduino IDE 1.8.7 // Using HC-SR04 Module // Tested on 17 September 2019 // ---------------------------------------------------------------- // #define echoPin 2 // attach pin D2 Arduino to pin Echo of HC-SR04 #define trigPin 3 //attach pin D3 Arduino to pin Trig of HC-SR04 // defines variables long duration; // variable for the duration of sound wave travel int distance; // variable for the distance measurement WiFiClient wifiClient; MqttClient mqttClient(wifiClient); const char broker[] = "ip"; int port = port; const char topic[] = "avstand_i_garasje"; //const char topic2[] = "real_unique_topic_2"; //const char topic3[] = "real_unique_topic_3"; //set interval for sending messages (milliseconds) const long interval = 8000; unsigned long previousMillis = 0; int count = 0; void setup() { //Initialize serial and wait for port to open: // Serial.begin(9600); // while (!Serial); // attempt to connect to Wifi network: while (status != WL_CONNECTED) { Serial.print("Attempting to connect to network: "); Serial.println(ssid); // Connect to WPA/WPA2 network: status = WiFi.begin(ssid, pass); // wait 10 seconds for connection: delay(10000); } // you're connected now, so print out the data: Serial.println("You're connected to the network"); Serial.println("----------------------------------------"); printData(); Serial.println("----------------------------------------"); pinMode(trigPin, OUTPUT); // Sets the trigPin as an OUTPUT pinMode(echoPin, INPUT); // Sets the echoPin as an INPUT Serial.begin(9600); // // Serial Communication is starting with 9600 of baudrate speed Serial.println("Ultrasonic Sensor HC-SR04 Test"); // print some text in Serial Monitor Serial.println("with Arduino UNO R3"); Serial.print("Attempting to connect to the MQTT broker: "); Serial.println(broker); if (!mqttClient.connect(broker, port)) { Serial.print("MQTT connection failed! Error code = "); Serial.println(mqttClient.connectError()); while (1); } Serial.println("You're connected to the MQTT broker!"); Serial.println(); } void loop() { // check the network connection once every 10 seconds: while (status != WL_CONNECTED) { Serial.print("Attempting to connect to network: "); Serial.println(ssid); // Connect to WPA/WPA2 network: status = WiFi.begin(ssid, pass); delay(5000); if (!mqttClient.connected()) { Serial.println("mqtt client not connected"); // mqttClient.connect(broker, port); delay(5000); } delay(1000); printData(); Serial.println("----------------------------------------"); // wait 10 seconds for connection: delay(10000); // Clears the trigPin condition digitalWrite(trigPin, LOW); delayMicroseconds(2); // Sets the trigPin HIGH (ACTIVE) for 10 microseconds digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds duration = pulseIn(echoPin, HIGH); // Calculating the distance distance = duration * 0.034 / 2; // Speed of sound wave divided by 2 (go and back) // Displays the distance on the Serial Monitor Serial.print("Distance: "); Serial.print(distance); Serial.println(" cm"); } void printData() { /* Serial.println("Board Information:"); // print your board's IP address: IPAddress ip = WiFi.localIP(); Serial.print("IP Address: "); Serial.println(ip); Serial.println(); Serial.println("Network Information:"); Serial.print("SSID: "); Serial.println(WiFi.SSID()); // print the received signal strength: long rssi = WiFi.RSSI(); Serial.print("signal strength (RSSI):"); Serial.println(rssi); byte encryption = WiFi.encryptionType(); Serial.print("Encryption Type:"); Serial.println(encryption, HEX); Serial.println(); */ // call poll() regularly to allow the library to send MQTT keep alive which // avoids being disconnected by the broker mqttClient.poll(); unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // save the last time a message was sent previousMillis = currentMillis; //record random value from A0, A1 and A2 int Rvalue = (distance) ;//analogRead(A0); // int Rvalue2 = analogRead(A1); // int Rvalue3 = analogRead(A2); Serial.print("Sending message to topic: "); Serial.println(topic); Serial.println(Rvalue); mqttClient.beginMessage(topic); mqttClient.print(Rvalue); mqttClient.endMessage(); Serial.println(); } } /* void connectMQTTClientIfNeeded() { if (!mqttClient.connected()) { Serial.println("mqtt client not connected"); // mqttClient.connect(broker, port); } // // tasks.after(30000, connectMQTTClientIfNeeded); // after 30 seconds call connectMQTTClientIfNeeded() again } */ (Så skal jeg naturligvis rydde opp litt i koden når jeg har fått det til å virke som jeg vil. Får skylde på at jeg er litt i tåka etter Corona... Hei, kopierte linjene fra void setup(): while (status != WL_CONNECTED) { Serial.print("Attempting to connect to network: "); Serial.println(ssid); // Connect to WPA/WPA2 network: status = WiFi.begin(ssid, pass); delay(5000); ) if (!mqttClient.connected()) { Serial.println("mqtt client not connected"); // mqttClient.connect(broker, port); delay(5000); } Der sjekkes det om WiFi er koblet til og det blir ikke gjort noe i koden før du har tilkobling til WiFi. Det sjekkes så om MQTT er koblet og hvis det ikke er det så kobles det til igjen. Denne kan kanskje legges i en While loop slik at den ikke går videre før MQTT er koblet til igjen. Dette er ikke en god løsning hvis det skal styres noe lokalt feks uavhengig av WiFi og MQTT, men i dette tilfellet går det greit
  21. Jeg hadde byttet den ut med en heatit. Hvor jeg hadde plassert den kommer an på hvordan det ser ut hos deg. Muligens lurt den inn i en multiboks på siden av sikringsskapet.
  22. Jeg har løst det ved å bruke en annen virtuell enhet som jeg kaller for "x - forrige". I eventet så trigger jeg på den faktiske sensoren og sammenligner med "x - forrige". Og under actions bruker jeg Easy Trigger pluginen til å sette "x - forrige" til det sensoren nå er.
  23. Hei. Link til Github Hardware brukt: Flexit CI66 Usr-Tcp232-410S Da jeg har flyttet inn i ny bolig med flexit og jeg ville styre dette via HS4 så har jeg laget et script i python som leser dataene som er satt opp i en separat fil via en modbusRTU/TCP konverter og sender det ut på MQTT. Det kan også motta kommander for å skrive, foreløpig kun til holding registers. Hvilke som kan skrives til defineres i konfigurasjonsfilen, da har man litt ekstra sikkerhet tilfelle noe galt skulle skje. Grunnen til at jeg har gjort det slik er at det krever minimalt med oppsett i toppsystemet. Feks i HS4 og mcsMQTT så oppdager den alle topicene selv og det er bare å trykke legg til, det kan i prinsippet gjøre at alle toppsystemer som støtter MQTT kan nå lese og skrive til modbus. I scriptet er den en variabel som må endres og det er "config_file" som for øyeblikket ligger på linje 12. Den skal være til configfilen som er aktiv. MQTT topic blir som følger "basetopic/{holding_registers/input_registers}/{register nummer}/{register navn}/s" den siste "s" er for "status" når det skal skrives til modbus endres denne til "c". MQTT settings er ganske selvforklarende Modbus settings: server_adress: Adressen til modbusTCP serveren/konverteren server_port: Porten som er brukt for tilkobling på serveren unit_id: Normalt er den 1 men kommer til an på implementasjonen av modbus på serversiden read_delay: Hvor lenge den venter mellom hver gang det leses oppgitt i 1/100. 50 = 500ms = 2Hz Holding og input register: "holding_registers":{ "0":{ Register nummer "name":"Supply_Air_Speed_1", Navn som brukes i MQTT topic "writeable":"True", True = kan skrives til fra MQTT, brukes kun i holding registers. Scriptet vil kun subscribe til topics hvor denne er "True" "size":"16", 16 = 16 bit = 1 register & 32 = 32 bit = 2 register "unit":"%", Foreløpig ikke brukt til noe "scaling":"1", Skalering. Verdien vil multipliseres med denne verdien før den sendes på MQTT. Og motsatt når den blir sendt fra MQTT til modbus "signed":"True" Om verdien er en "int" = True, uint = "False" }, Ting som foreløpig mangler: - Kunne skrive 32bit verdier og dele disse opp til 16bit og skrive til hvert register - Lese Discrete inputs - Lese coils - Skrive coils Hvordan det ser ut i HS4 hos meg: Eksempel konfig for flexit CI66 { "mqtt_settings":{ "server_adress":"adress", "server_port":"1883", "server_user":"username", "server_password":"password", "basetopic":"82/ventilasjon/" }, "modbus_settings":{ "server_adress":"adress", "server_port":"26", "unit_id":"1", "read_delay":"50" }, "unit_details":{ "type":"Flexit_CI66", "name":"ventilasjon" }, "holding_registers":{ "0":{ "name":"Supply_Air_Speed_1", "writeable":"True", "size":"16", "unit":"%", "scaling":"1", "signed":"True" }, "1":{ "name":"Supply_Air_Speed_2", "writeable":"True", "size":"16", "unit":"%", "scaling":"1", "signed":"True" }, "2":{ "name":"Supply_Air_Speed_3", "writeable":"True", "size":"16", "unit":"%", "scaling":"1", "signed":"True" }, "3":{ "name":"Supply_Air_Speed_4", "writeable":"True", "size":"16", "scaling":"1", "signed":"True" }, "4":{ "name":"Extract_Air_Speed_1", "writeable":"True", "size":"16", "unit":"%", "scaling":"1", "signed":"True" }, "5":{ "name":"Extract_Air_Speed_2", "writeable":"True", "size":"16", "unit":"%", "scaling":"1", "signed":"True" }, "6":{ "name":"Extract_Air_Speed_3", "writeable":"True", "size":"16", "unit":"%", "scaling":"1", "signed":"True" }, "7":{ "name":"Extract_Air_Speed_4", "writeable":"True", "size":"16", "scaling":"1", "signed":"True" }, "8":{ "name":"Set_Air_Temperature", "writeable":"True", "size":"16", "unit":"°C", "scaling":"10", "signed":"True" }, "9":{ "name":"Supply_Air_Min_Temp", "writeable":"True", "size":"16", "unit":"°C", "scaling":"10", "signed":"True" }, "10":{ "name":"Supply_Air_Max_Temp", "writeable":"True", "size":"16", "unit":"°C", "scaling":"10", "signed":"True" }, "11":{ "name":"Cooling_Outdoor_Air_Min_temp", "writeable":"True", "size":"16", "unit":"°C", "scaling":"10", "signed":"True" }, "12":{ "name":"Forced_Vent_Speed", "writeable":"True", "size":"16", "scaling":"1", "signed":"True" }, "13":{ "name":"Forced Vent_Time", "writeable":"True", "size":"16", "unit":"min", "scaling":"1", "signed":"True" }, "14":{ "name":"Air_Regulation_Type", "writeable":"True", "size":"16", "unit":"bool", "scaling":"1", "signed":"True" }, "15":{ "name":"Cooling_Active", "writeable":"True", "size":"16", "unit":"bool", "scaling":"1", "signed":"True" }, "16":{ "name":"Forced_Ventilation", "writeable":"True", "size":"16", "unit":"bool", "scaling":"1", "signed":"True" }, "17":{ "name":"Set_Air_Speed", "writeable":"True", "size":"16", "scaling":"1", "signed":"True" }, "18":{ "name":"Time", "writeable":"False", "size":"32", "unit":"s", "scaling":"1", "signed":"False" }, "21":{ "name":"Fire_Smoke_Mode", "writeable":"True", "size":"16", "scaling":"1", "signed":"True" } }, "input_registers":{ "6":{ "name":"Time_1", "writeable":"False", "size":"32", "signed":"False" }, "8":{ "name":"Filter_Time", "writeable":"False", "size":"16", "signed":"False" }, "9":{ "name":"Supply_Air_temp", "writeable":"False", "size":"16", "unit":"°C", "scaling":"10", "signed":"True" }, "10":{ "name":"Extract_Air_temp", "writeable":"False", "size":"16", "unit":"°C", "scaling":"10", "signed":"True" }, "11":{ "name":"Outdoor_Air_temp", "writeable":"False", "size":"16", "unit":"°C", "scaling":"10", "signed":"True" }, "14":{ "name":"Heat_Exchanger", "writeable":"False", "size":"16", "unit":"%", "signed":"False" }, "17":{ "name":"Operational_Time", "writeable":"False", "size":"16", "unit":"%", "signed":"False" }, "26":{ "name":"Rotor_Alarm", "writeable":"False", "size":"16", "signed":"False" }, "27":{ "name":"Filter_Alarm", "writeable":"False", "size":"16", "signed":"False" }, "28":{ "name":"Heating_Active", "writeable":"False", "size":"16", "signed":"False" }, "32":{ "name":"Speed_1_counter", "writeable":"False", "size":"32", "signed":"False" }, "34":{ "name":"Speed_2_counter", "writeable":"False", "size":"32", "signed":"False" }, "36":{ "name":"Speed_3_counter", "writeable":"False", "size":"32", "signed":"False" }, "42":{ "name":"Total_run_counter", "writeable":"False", "size":"32", "signed":"False" }, "47":{ "name":"Actual_set_air_temperature", "writeable":"False", "size":"16", "scaling":"10", "signed":"True" }, "48":{ "name":"Actual_set_air_speed", "writeable":"False", "size":"16", "signed":"True" } } }
  24. Du kan bytte trafoen til en som er SELV eller PELV godkjent så lenge det speilet er utenfor sone 2. Problem nr 2 for deg er at du ikke kan sette den dimmeren foran stikkontakten.
  25. På side 11 finner du en grei beskrivelse på hvordan bilen prater med ladeboksen. https://www.ti.com/lit/ug/tidub87/tidub87.pdf?ts=1636748373306&ref_url=https%3A%2F%2Fwww.google.com%2F
×
×
  • 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.