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

Fermate

Administrator
  • Innlegg

    1 920
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    149

Alt skrevet av Fermate

  1. Må ikke retain flagget være TRUE?
  2. @Hr Kotelett bare si ifra om du trenger hjelp
  3. Finnes det en enkel måte å sjekk det på? (i HomeSeer)
  4. @Fred-Stian Åssen gikk det? Trenger du mere tips?
  5. Ja det er det. Skal se om jeg kan grave det fram om litt Bra spørsmål. Når det gjelder meg personlig; se mitt svar under artikkel "0" 🙂
  6. Jeg har full forståelse for at folk ønsker å jobbe i høynivå framfor å klore rundt i assembler. Til sommeren har jeg programmert som yrke i 40år og jobber til daglig med å vedlikeholde et beist av en applikasjon som drifter det meste i firma der jeg jobber. På hybby siden savner jeg ikke assembler akkurat men jeg setter veldig pris på å ha full kontroll på det jeg lager og hvordan det henger sammen i koden. Det er også derfor jeg forsøker å bruke så enkle biblioteker som mulig (helst ingen men det går jo en grense) For min egen del handler det altså om mestringsgleden ved å designe og lage ting selv. Noen ting er det like greit å kjøpe (er ikke like gøy å finne opp kruttet hver gang) mens andre ting er det rett og slett gøy å bygge 🙂 Jeg tror jeg må oppsummere det slik: Mellom det å lodde og programmere alt selv til det å kjøpe ting ferdig er det mange graderinger. Noen av oss er mest fokusert på resultetet mens andre er også opptatt av gleden ved å gå veien. Men alle må finne sin balanse mellom disse ytterpunktene som gir mest glede 🙂
  7. Takk for artikkel @ZoRaC Jeg har hatt forsinkelse i Z-wave nettet mitt i årevis og WAF er så dårlig at hun har gitt opp og bare synes synd på meg. Det varierer i løpet av døgnet kan det se ut som og kan gå fra 0 forsinkelse til over 45 sekunder 😞 😞 😞 Med 93 Noder i nettet er jeg lite interessert i råd av typen "kan du ikka bare ta ut en og en node til det forsvinner" men i fbm. overgang til HS4 satte jeg opp hele zwave nettet på nytt uten at det hjalp en dritt. Jeg er villig til å betale en god del for å bli kvitt problemet og har til og med vurdert å bytte hele greia med Zigbee noder. Hva med dette? https://z-wave.me/manual/z-way/Troubleshoot_Z_Wave_Network.html# Kan det kjøres på min eksisterende UZB som står rett i HS4 PCen (og er kjøpt uten Z-Way lisens) om jeg kjøper en lisens?
  8. Kim Storøy gjorde meg oppmerksom på denne: https://esphome.io/ på IoT FB gruppa. Personlig er jeg ikke så glad i sånne biblioteker som pakker bort alt det gøye i programmeringen men løsningen er jo absolutt interessant så jeg poster linken her. Det store biblioteket deres over IO devicer er imponerende og definitivt en kilde til inspirasjon, men jeg klarer dessverre ikke helt å finne fram til kode jeg kan stjele fra Sourcekode-delen deres. Om noen er flike til det så tar jeg gjerne et hint på hvor i source strukturen deres en finner slik lavlevel kode.
  9. Jeg har også tenkt den tanke, men takk for at du (og @ArnieO ) minner meg om det. Det bør absolutt lages en "kloss" for OTA. Men først må jeg lære den selv (og helst den siste mest oppdaterte måten å gjøre det på) Men det ligger litt lavt i prioriterings bunken akkurat nå så om noen har lyst til å bidra med en kloss så er jeg bare glad for det.
  10. Fermate

    ESP32/MQTT Viftestyring (4)

    Her er basis kode for PWM styring av en PC vifte: Mange PC vifter kan en styre hastigheten på, men ikke alle. Dersom vifta har 4 kabler (og ikke bare 3) kan den styres. Lederne er: 12V Jord PWM (plus bredde modulasjon) styresignal inn Puls informasjon om hvor fort vifta faktisk går (Tach) PC vifter har PWM signal på 25kHz (antakeligvis for at en ikke skal kunne høre den med ørene) og tidligere var det litt klønete å få til med en Arduino, men med en ESP32 går det som en lek. Vi bruker en av de 6-16 (avhengig av ESP32 type) innebyggede PWM kanalene i ESP32'en og styrer dette med noen få linjer kode. Her er koden satt inn for å styre vifta fra MQTT: Det er også mulig å LESE den REELLE hastigheten på vifta ved å telle pulser fra den siste ledningen fra PC vifta men det må bli en annen gang. OBS: Pulsene fra vifta er 12V og vil skade ESP32 om de kobles direkte. Det er ofte 2 eller 4 pulser / rotasjon
  11. For noen år siden gjorde min sønn (30) meg oppmerksom på Arduino. Jeg ble veldig glad for jeg hadde savnet den direkte kontakten med IO som jeg husket fra assembler-programmeringen av Z80 på 80 tallet. Nå kunne jeg ta oppigjen alt jeg hadde puslet med av elektronikk som 14 åring med loddebolt på pulten på gutterommet i barndomshjemmet (1974). Og med mikroprosessor ble alt bare kulere og lettere å lage ting som kunne brukes. Med smarthus kom behovet for å lage devicer som kunne snakke med nettet og leg landet etterhvert på ESP32 og MQTT. Men hver gang jeg skal lage noe, plukker jeg biter fra her og der; noe googler jeg, noe spør jeg ChatGPT om og noe finner jeg i gamle prosjekter jeg har liggende. Mange av eksemplene jeg finner på nettet er dessverre fulle av mye annen kode, -er for gamle eller bærer preg av en programmerer som skal brilljere med å skrive avansert (uleselig) kode. Jeg har lenge tenkt at jeg skulle lage noen små "LEGO klosser" med tematisk funksjonalitet slik at det ble lettere å sette sammen en løsning, og at koden var ferdig "destillert" til å limes inn i prosjektet. Om jeg nå slo dette sammen med tanken om å vise andre hvor inmari gøy dette er, og kanskje hjelpe noen med å komme i gang med dette, var det jo logisk å lage dette som et sett med små mini-guider her på forumet. Jeg ser jo at jeg selv går tilbake til prosjektene mine som jeg har postet her og henter kode fra dem (for det er så enkelt å finne 😉 ) så hvorfor ikke gjøre dette fra en litt egoistisk side også? Det jeg poster bli jo farget av hva jeg personlig foretrekker og jeg har valgt å holde meg innenfor en begrenset ramme som består av: ESP32 Dev Kit v1 MQTT I hver Guide tenker jeg å poste basiskoden (kun det du trenger for det tema miniguiden handler om) men også komplett kode for å kjøre dette over MQTT. Noen guider vil også inneholde biter av annen kode som eksempler på ting som kan være relevant , men dette ønsker jeg å holde separat slik at det ikke forurenser hovedtema. En liten forklaring på hvordan dette fungerer og hvordan det skal kobles må jo med, men når jeg selv leter etter kode blar jeg meg irritert forbi masse bla bla før jeg endelig finner KODEN som jeg trenger. Jeg tenker derfor at basis koden skal ligge HELT ØVERST slik at den blir lett å finne 🙂 Jeg syns det passer med en par "hvordan komme i dag" kapittler også slik at nybegynnerne ikke blir skremt vekk og dere andre får bare vente litt så kommer det mat for dere også 😉 Vi starter da med en "komme i gang" guide for ESP32: Og en for MQTT Og en der de er slått sammen: Senere er planen å komme med: ESP32/MQTT Viftestyring ESP32/MQTT Servostyring ESP32/MQTT Temperatur måling ESP32/MQTT Relee styring ESP32/MQTT Brytere (og debouncing) ESP32/MQTT Adresserbare LED ESP32/MQTT Måle Spenninger og lese Potensiometere ESP32/MQTT Steppermotorer ESP32/MQTT Store strømmer lydløst med MOS-Fet MQTT og HomeSeer (mscMQTT) ESP32/MQTT Strømforskyninger ESP32/MQTT Utstyr for prototyping (og prototype bygging)
  12. Fermate

    ESP32 Komme igang (1)

    Som jeg lovet: Koden øverst Det finnes en million guider om det å komme igang med Arduino eller ESP32 så egentlig burde jeg bare henvise til nettet, men for å gjøre dette komplett får jeg ta en miniversjon her også: Skaff deg en ESP32 🙂 Dessverre ser jeg at Kjell&co ikke fører den versjonen lengre så da blir det Aliexpress kanskje? Last ned Arduino IDE. Etterhvert ønsker du kanskje å bruke platform.io for VS Code, men i starten er Arduino IDE helt greit Trykk på BOARDS MANAGEREN og last ned ESP32 Sjekk i Tools/Port menyen hvilke seriell porter du har FØR du plugger inn ESP32 Koble prosessoren til PCen med en USB kabel. (Sjekk at det røde lyset tenner på ESP32'en) Gå i Tools/Port menyen og velg den porten som nå (helst) har dukket opp Gå i Tools/Board:/ESP32 menyen og velg ESP32 Dev Module Kopier og lim inn programmet (istedet for det som ligger i den høyre delen av vinduet (void setup() osv)) Trykk på toolbar inkon Pil til høyre (Upload) og vent på at programmet kompilerer og laster ESP32'en Om alt går bra står det Leaving... Hard resetting via RTS pin... Nå skal det blå lyset blinke hvert sekund. Hurra du har laget et program og kjører det på en mikroprosessor. La oss koble til serial monitoren for å følge med i hva som skjer i programmet. Endre programmet til dette: Trykk på toolbar pila igjen og vent på kompilering og upload. Når den er ferdig velger du Tools/Serial Monitor og endrer dropdown boksen til høyre til 115200 Du ser nå teksten som mikroprosessoren skriver ut til deg. Om du trykker på den lille bryteren til venstre for USBen på ESP32 kortet vil den restarte. La oss nå bruke en "bryter" til å tenne LEDen istedet. Last ned og print ut dette kartet og heng det på veggen i laben din: Vi skal nå bruke GPOI pin 13 som input pinne. Vi definerer den som INPUT og sier ifra at vi ønsker at ESP32'en internt skal sørge for å dra den opp til HIGH dersom den ikke er tilkoblet til noe. For å aktivere den trenger vi da kun å koble den til jord (GND) Vi endrer programmet til å teste på denne pinnen og styre lyset. For at ikke teksten skal rase forbi (prøv uten den linja så skal du se) beholder vi den lille pausen på 1 sek. ( delay(1000); ) Da blir programmet slik: Om du nå kobler en ledning mellom GND og GPOI_13 vil du se at LEDen tenner. Når vi har gått gjennom MQTT Komme i gang skal vi bygge dette ut og styre LEDen og lese pinnen over MQTT i ESP32/MQTT Det første programmet
  13. Fermate

    MQTT Komme i gang (2)

    MQTT (Message Queuing Telemetry Transport) er en lettvekts protokoll for maskin til maskin kommunikasjon. Av den grunn er den blitt veldig populær i smarthus sammenheng og er supportert av mange smarthus systemer. Vi skal bruke den her for å kommunisere med en ESP32 for å lage devicer som kan styres med smarthuset. Det finnes masse fine artikkler som diskuterer MQTT så google dem selv. Mitt hode forenkler det slik: Du setter opp en MQTT Broker som er et program som kjører kontinuering på en PC eller en Raspberry PI eller tilsvarende. Alle Clientene sender meldinger til denne og den videresender meldinger til dem som har bedt om det. Når en device (MQTT Client) starter, kobler den seg opp til Brokeren ved å vite IP addressen (og noen ganger brukernavn/passord) og port nummeret til Brokeren. (Ligger i kode på samme måte som SSID og passord til WiFien) Den gir også brokeren "navnet" sitt (ClientID) Når Klienten har fått kontakt med Brokeren sier den ifra hvilke meldinger den ønsker å motta. Vi sier at den abonnerer på et topic. Navnet på meldingene gis på formen meldingsnavn /underMeldingsnavn og navnet kan utvides med flere nivåer på formatet hovedMeldingsnavn/underMeldingsnavn/underUnderMeldingsnavn osv. En kan også bruke # og + som wildcards for å anngi en gruppe meldinger. Når en klient sender en melding til Brokeren gir den den et topic navn på dette formatet. Så om Klient1 abonnerer på meldinger av typen hus/Baderom/vifte og klient2 sender en melding til Brokeren med topic hus/Baderom/vifte vil Brokeren sende denne videre til klient1 (og alle andre klienter som abonnerer på dette topicet) For å folge med i det som skjer kan du koble deg til Brokeren med en klient som sier han vi ha beskjed om ALLE meldingene, en "MQTT Debugger" eller en "MQTT Explorer" For at vi skal kunne bruke MQTT til å la ESP32en snakke med Smarthus systemet må vi altså ha en MQTT Broker. Noen smarthus-systemer har slike innebygget (jeg bruker mscMQTT pluginen i HomeSeer) andre ønsker å ha dem separat kjørende på en Rasberry-PI eller som en service på en (smarthus) PC. Jeg overlater til dere å velge en løsning som passer for dere, men for testing tar vi med hvordan du setter opp en enkel MQTT broker: Mosquitto er en open source MQTT Broker (kan også kjøre som klient om nødvendig) som du kan laste ned herfra: https://mosquitto.org/download/ Kjør install men dersom du ikke har tenkt at den skal kjøre i bakgrunn på PCen din som en service, tar du bort krysset på "Service". Når den er ferdig med å installere pleier jeg å flytte mosquitto mappen fra Program Filer til C:\ for å slippe alt bråket når jeg skal editere filer. Gå til mappen og rename mosquitto.conf til mosquitto.conf-orginal Lag en ny fil med navnet mosquitto.conf og legg disse linjene i den: listener 1883 allow_anonymous true Lag en ny fil start.bat og legg disse linjene i den: ipconfig mosquitto -v -c mosquitto.conf Dobbelklikk denne filen og du skal få opp et vindu som dette: Du har nå en MQTT broker kjørende på den IP adressen som vises, og som viser all aktivitet som skjer i den DOS boksen. Før vi kaster oss på å sende meldinger til den med en ESP32 skal vi teste litt med MQTT Explorer: Jeg bruker MQTT Explorer som du finner her: https://mqtt-explorer.com/ Last den ned og start opp. Skriv inn IP adressen til Brokeren under HOST og trykk Connect. Du skal nå få opp et bilde som dette: Vi kan nå sende en medling til Brokeren og se den ankomme: I Mosquitto vinduet vil du se det raser forbi meldinger men du vil også se at meldingen mottas (Gul) og deretter sendes videre til(bake) til MQTT Exploreren (Grønn) I neste Guide; ESP32/MQTT Det første programmet skal vi bruke ESP32'en til å sende og motta meldinger og følge med på meldingene på denne måten.
  14. Først basis koden, her er et generisk basis skjelett for MQTT: Så til saken; La oss starte med noe enkelt og tenne onboad LED'en med en MQTT kommando. Start opp MQTT Brokeren og MQTT Exploreren og overfør dette programmet til ESP32'en Det første vi ser i MQTT Exploreren resultatet av at denne linjen: MQTTclient.publish("hjemmeautomasjonClient/status", "started"); er utført og at Staus = started er sendt: Om vi deretter sender denne meldingen med MQTT Exploreren Så tenner LED'en og vi ser også meldingen her: Nå har vi altså en kommuniasjon oppe der vi kan styre ESP32'en fra MQTT. Neste stepp er å hente data fra Esp32'en. Vi bruker samme prisippet som i "Komme i gang med ESP32" koden der vi lager en "bryter" mellom GND og GPIO_13: Mekaniske brytere åpner og lukker seg ikke helt nøyaktig men "spretter" et bittelite øyeblikk. Mikroprosessoren er imidlertid rask nok til å lese dette flere hundre ganger så dersom vi ikke legger på noen kode for fikse det vil vi sende VELDIG MANGE MQTT meldinger. Koden vi legger på kalles "debounce" kode og fungerer ved å måle tiden på hvor lenge bryteren var vært i den stillingen etter at den sist endret seg. Det kommer en egen mini-guide senere om debounce prinsipper. Start opp MQTT Brokeren og MQTT Exploreren og overfør dette programmet til ESP32'en Om du kortslutter mellom GND og GPIO_13 ser du at det går en melding: Vi har nå et program som både mottar og sender MQTT meldinger 🙂 Og vi kan følge med i Serial Monitor så lenge den er koblet til PCen: Følg med! Jeg skal forsøke å legge ut en liten "LEGO kloss" med (u)jevne mellomrom 🙂
  15. Jeg har lenge hatt garasjedøra styrt av Smarthuset. En iTach Relee enhet har styrt døra, og en Nexa sender har lest av to mikrobrytere; en for døra oppe og en for løra lukket. Etter å ha forsøkt å rygge ut bilen før døra ver helt oppe (og siden jeg hadde to ledige releer i iTach'en) ble det "trafikklys" fra Biltema. Automatikken (ikke mulig å åpne døre om den allerede er åpen (for da lukker den seg)) ble laget som eventer i HomeSeer og garasjedøra ble styrt av Alexa, mini sendere i bilene og diverse brytere på veggene inne og i kjelleren osv. En blir jo lei av å bytte batterier på Nexa sendere og iTach'en er jo så gammel at den bruker 802.11b, så det var på tide å bygge noe selv og da blir det jo ESP32 og MQTT Jeg hadde noen billige releer liggende fra Ali men de var 5V i styringen og jeg var redd ESP32 pinnen ikke likte det så jeg la inn en transistor. Fordi det billige releet allerede hadde en transistor måtte jeg ha en Pullup Resistor som ga en spenning på over 4.6V (jeg målte) for å få det til å slå inn. For at ikke spenningen på pinnen til ESP32en skulle bli for høy fikk jeg ChatGPT til å beregne disse to motstandene for meg. Det var faktisk veldig praktisk for jeg er ikke så sterk på slike beregninger, og selv om det tok litt tid å få formidlet alle kravene og en del kontrollspørsmål måtte til ("men hva blir spenningen på ESP32 pinnen nå da?") så kom jeg altså fram til noen greie verdier. Siden jeg ikke hadde akkurat den transistoren som ChatGPT foreslo, kunne jeg også foreslå noen av dem jeg hadde liggende helt til jeg fikk beskjed fra ChatGPT om at den kunne brukes. Veldig kjekt, raskt og forholdsvis trygt. Med ett rele for døra (ett sekund klikk for å åpne, samme for å lukke), ett for det røde lyset og ett for det grønne og en sensor inngang for hver endebryter, var behovet dekket. Siden "trafikklysene" var 12V måtte jeg inn med en spenningsregulator på 5V. Jeg liker at mikroprosessoren forteller hva den driver med, for det gjør testingen enklere under utviklingen men også under evnt. feilsøking senere, så jeg måtte inn med noen LEDs. Før brukte jeg RGB LEDs for å kunne vise forskjellige farger i den samme LEDen men nå har jeg begynt å bruke adresserbare LEDs istedenfor. For det første klarer jeg meg med 1 motstand (i stedet for 3) og for det andre er det bare å koble seg videre til neste og neste uten flere motstander eller flere pinner på ESP32en. Siden jeg har en haug adresserbare LEDs liggende fråtset jeg i 5 stykker: Connect Status(Gul=Startup, Rød=Venter på WiFi, Blå=Har WiFi venter på MQTT, Grønn=MQTT Connected Mikrobryter oppe (Gul=Startup, Rød=Bryter Lukket, Grønn=Bryter Åpen) Mikrobryter nede (Gul=Startup, Rød=Bryter Lukket, Grønn=Bryter Åpen) Trafikklys Rød (Gul=Startup, Sterk Rød = Lampe Rød Lyser, Svakt Rød=Lampe Rød Slukket) Trafikklys Grønn (Gul=Startup, Sterk Grønn = Lampe Grønn Lyser, Svakt Grønn=Lampe Grønn Slukket) OBS Uten en motstand mellom ESP32en og den første LEDen ble det kjempeustabilt og blinket i hytt og vær. Jeg bruke en 330 ohm. Transistorene og motstandene og ESP32en ble loddet på et lite "kobber stripe" kort og en liten boks ble 3D Printet Tips for å koble adresserbare LEDs: Fordi data in og ut er på hver ende av beina, kan du bøye pluss og minus pinnene til hver sin side og lodde dem etter hverandre på et "3 punkt" kobberkort: Først hadde koden egne Topics for å styre lysene fra HomeSeer men så fant jeg ut at det ver like greit å pakke all den logikken inn i softwaren her og endte da bare opp med kommandoene: OpenDoor (Åpner døra om den er lukket (og bare da)) CloseDoor (Lukkerdøra om den er åpen (og bare da)) ActivateDoor (Trigger døra uansett hviken tilstand den er i. For å kunne override automatikken om en bryter henger seg opp) Men status fikk da også fire tilstander (med tilhørende lys): Open (Grønnt lys) Closed (Ingen lys) Opening (Rødt) Closing (Rødt og Grønnt) Jeg burde selvfølgelig puttet all den lys-koden i små subrutiner, men det kan dere kose dere selv med 😉 Jeg har alltid med denne lille koden // Onboard LED Status if (MQTTclient.isMqttConnected()) { digitalWrite(ONBOARD_LED ,LOW); } else { digitalWrite(ONBOARD_LED ,HIGH); } slik at jeg kan debugge debuggings lysene også 😄 Her er et bilde fra prototypingen:
  16. Fermate

    Enda en (smart?) klokke!

    @Hr Kotelett Flott, da skal du få litt rabatt også 🙂 Send adresse på PM her eller på [email protected]
  17. Fermate

    Enda en (smart?) klokke!

    @Hr Kotelett Her er et forslag til bokstaver: (De lyseblå er bare fyll bokstaver for å forvirre slik at tallene lyer opp ved en "overraskelse") Det er superenkelt å bytte ut bokstaver, så bare sjekk og si ifra om du vil ha noe endret. Så slenger jeg det i laseren så fort du har bekreftet.
  18. Fermate

    Enda en (smart?) klokke!

    Er ikke så veldig mye arbeid å bytte (og jeg må jo lage en spesiellt for deg uansett) så du bestemmer helt selv. Hva med SØTTEN/SYTTEN ? Har du en gjerdesag hjemme? Så kunne jeg bare grovkappet aluminiums rammene og latt deg tilpasse dem selv så du fikk dem helt nøyaktige. Jeg regner med at jeg må sende det til deg i posten? (Du bor ikke i nærheten av Lillestrøm/Oslo)
  19. Fermate

    Enda en (smart?) klokke!

    Ups, takk for at du purrer på meg. Skal vi se, Bergensversjonen, var det den med XKLOKKENXERX på første linje? Men skal du ha SYV isteden for SJU også da kanskje?
  20. Les mer her https://www.ikea.com/global/en/newsroom/innovation/parasoll-badring-vallhorn-smart-sensors-231128/
  21. Les mer her https://www.ikea.com/global/en/newsroom/innovation/parasoll-badring-vallhorn-smart-sensors-231128/ Vis full oppføring
  22. Vi skal flytte hjemmeautomasjon.no til et annet hosting sted og vil få nedetid i den forbindelse. Vi regner med at det er klart for å gjøre det til helga men vi skal komme tilbake og bekrefte eksakt tidspunkt. Det er alstå helt normalt at vi blir borte en stund, -ingen grunn til panikk og ingen ting skal bli borte. Iblis, Moskus og Fermate
  23. Vi skal flytte hjemmeautomasjon.no til et annet hosting sted og vil få nedetid i den forbindelse. Vi regner med at det er klart for å gjøre det til helga men vi skal komme tilbake og bekrefte eksakt tidspunkt. Det er alstå helt normalt at vi blir borte en stund, -ingen grunn til panikk og ingen ting skal bli borte. Iblis, Moskus og Fermate Vis full oppføring
  24. Fermate

    Enda en (smart?) klokke!

    Ja jeg har noe liggende. Hva ønsker du? (Hvor mye vil du gjøre selv)
  25. Det der ser veldig kult ut. Finnes de å kjøpe billig fra kina noe sted? Ali?
×
×
  • 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.