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

Christoffer

Medlemmer
  • Innlegg

    350
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    7

Innlegg 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. el_frodo skrev (11 timer siden):

    Hei.

     

    Har noen av dere erfaring med å bruke en m-bus(rs485) -> eth gateway for å lese data fra HAN porten på en Kaifa MA304H4. Har en Protos PE-11 koblet til, satt opp som MQTT broker men får ikke trafikk på m-bus/seriel siden. Satt den opp slik som mitt forrige m-bus usb adapter som fungerte fint. http://www.hi-flying.com/pe11

    Er jeg i en blindvei eller skal det være mulig å benytte en slik enhet? Veldig ryddig i skapet med en slik montert på din skinne framfor pi med usb adapter hengende å slenge.

     

    -el

    Denne støtter vel Modbus og ikke M-bus som er det som er i måleren så det fungerer nok dårlig.

  5. Gullars skrev (24 minutter siden):

    Kn du forresten gi noen eksempler på hva som skiller 4 kanaler fra 1 kanal? Kan man med 4 typ styre 4 ulike kurser, f.eks. basseng, jacuzzi, sauna og belysning?

    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. 

     

    Gullars skrev (47 minutter siden):

    Ser den forventes inn til Dustin 3. juni: https://www.dustinhome.no/product/5011256485/pro-1pm-din-wifi-1-ch-16a-power-metering-red?ssel=true&gclid=Cj0KCQjw1tGUBhDXARIsAIJx01mA1KvgiH3b38GY-BDQKubk1uZq5muk3ht8Haq_yPaEI56txSUbnSEaAgCqEALw_wcB

     

    Tenkte kanskje å montere en smart bryter (typ «lysbryter») ved inngangen til bassengrommet som kan aktivere Shelly-en manuelt ved behov, men er kanskje et poeng å ha uret i tillegg hvis det er mulig i tilfelle nettet eller Homey’en av en eller annen grunn skulle ha nedetid.

    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.

     

  6. Gullars skrev (10 timer siden):

    Oppdatering:

     

    Vedlagt et par bilder av sikringskapet til bassenget. Den jeg ønsker å smartstyre er nr 7. Dette er visst en lastbryter (hva det nå enn er), som slås av og på ved hjelp av tidsuret til høyre. 
     

    Finnes det en tilsvarende smart dings som kan erstatte tidsuret, som også kan slå lastbryteren av/på?

    0B66EAE2-D13A-4E5E-A905-075A6AA30899.jpeg

    DB307F93-8C6D-42C3-B029-53548E7CB6AB.jpeg

    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.

    • Like 1
  7. 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.

  8. calamity skrev (8 timer siden):

    Er shelly pro produktene noe som kunne fungert som smarte sikringer? Jeg kan ikke nok om strøm til at jeg helt skjønner om de erstatter sikringer eller hvordan de eventuelt brukes :)

    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.

  9. Neophyte skrev (4 timer siden):

    Hvor har du montert de? I sikringskap?

    Ja, de står rett på Din-skinnen. Men har også tenkte å montere en i en egen kapsling i en bod jeg har.

  10. Gullars skrev (På 19.4.2022 den 11.55):

    Blåser liv i denne gamle tråden...

     

    Jeg har et trefas 230V anlegg. Tenkte å kjøpe Aeotec HD til styring av basseng, jacuzee og varmtvannsbereder. Er det slik å forstå at dette ikke vil fungere siden anlegget mitt er trefas? Finnes det noen utprøvde alternativer som er Homey-kompatible?

    Ifølge manualen så er det kun tilkoblinger for N, L og GND på den europeiske versjonen. Er lastene også 3 fase?

  11. 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. 

  12. // 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 :)

    • Like 1
  13. 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:

    image.thumb.png.0f23dc6a4d517e30d3d9437429026400.png

     

    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"
    	}
    
    }
    }

     

×
×
  • 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.