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

Fermate

Administrator
  • Innlegg

    1 920
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    149

Fermate vant dagen sist 17. april

Fermate hadde mest likt innhold!

3 følgere

Hjemmeautomasjon

  • System
    HomeSeer

Nylige profilbesøk

15 955 profilvisninger

Fermate sine prestasjoner

Regelrytter

Regelrytter (12/16)

  • Første innlegg
  • Samarbeidspartner
  • Postmaskin Sjeldent
  • Samtalestarter
  • Ett år inn

Nylige merker

1,2k

Nettsamfunnsomdømme

  1. Takk for svar @Bjørn Mork og @stigvi Egentlig var spørsmålet: Må jeg oppdatere ZigBee2 MQTT for å få på plass nye(re) definisjoner av ZigBee devicer? Jeg fant dette rådet for oppdatering: https://docs.homeseer.com/products/updating-zigbee2mqtt-manually Men glemmte å stoppe HS Plugin før jeg startet og aborterte prosessen midt i. Etter å ha kjørt den på nytt nektet ZigBee2MQTT i Back-End prosessen å starte og jeg ga opp og slettet alt, installerete hele HS plugin på nytt (Den installerer ZigBee2MQTT som en del av seg selv) Da forsvant alle ZigBee enhetenemine men heldigvis var det ikke så mange så jeg bare la dem inn på nytt. Den installerte en eldre versjon av ZigBee2MQTT (var det 1.32.x tro?) så jeg kjørte en oppdatering til 1.36.0 etter metoden beskrevet i linken over. Det gikk greit og da detekterte den IKEA VINDSTYRKA korrekt. Men IKEA TRETAKT kjenner den fremdeles ikke igjen. (Det KAN være fordi jeg kjøpte et KIT med bryter i og at denne verjonen er litt anderledes) Jeg synes det er rart at den må ha ny installasjon for å oppdatere device databasen sin. Ville jo vært enklere om den lå online. Den er forøvrig veldig ryddig og imponerende i denne lista: https://www.zigbee2mqtt.io/supported-devices/ Nå stater en tid for meg med testing av mange nye ZigBee devicer så det hadde vært fint å få bekreftet at jeg har forstått det riktig: Må jeg oppdatere installasjonen av ZigBee2MQTT for å få support for nye devicer? Og om ikke lenge kommer spørsmålet: Jeg har funne et device som ikke er i support lista men jeg vil gjerne ta det i bruk: HVordan legger jeg til egne definisjoner?
  2. Når HS4 kom med ny ZigBee plugin basert på ZigBee2MQTT ble jeg veldig begeistret. Jeg var lei av JowiHue+DeConz og syntes dette var nye fine greier. Nå driver jeg og tester ut ZigBee devicer men kom opp i et problem med nyinnkjøpte IKEA TRETAKT og IKEA VINDSTYRKA begge står i lista over supporterte https://www.zigbee2mqtt.io/devices/E2204.html https://www.zigbee2mqtt.io/devices/E2112.html men jeg får feil når jeg skal inkludere dem: Har jeg for gammel versjon av ZigBee2MQTT? HVordan oppdaterer jeg?
  3. Fermate

    ESP32/MQTT Relé styring

    Her er kode for å styre et relé (Det er jo ikke store koden som skal til for å skru en pinne av og på men jeg tar den med alikevel) Litt om reléer Når en bruker et relé er det enten for å styre en stor strøm med en liten strøm eller en høy spenning med en lav spenning (eller begge deler). Prisippet er at en eller flere fysiske kontakter er koblet mekanisk til en spole slik at når spolen får strøm lukkes (eller åpnes) kontaktene. Jeg er vant til at reléer tegnes omtrent slik: Her er 1 og 6 spolen. Kontakt 7 er normalt koblet til 3 når reléet ikke er aktivert og kobles til kontakt 2 når spolen får strøm. Vi sier at kontakt 3 er "Normally Closed" (og er oftemerket NC) og kontakt 2 er "Normally Open" (merket NO). Nr 7 kan være merket COM. Reléet kan ha flere par kontakter slik som 4,5 og 8 og som veksler samtidig med de andre. Poenget er at det er en fysisk (elektrisk) avstand mellom spolen og kontaktene slik at spolen kan ha en lav spenning mens kontaktene kan styre en høy strøm/spenning. Hvor høy spenning (Volt) kontaktene tåler sier noe om hvor godt isolert de er, og hvor mye strøm (Ampere) de tåler sier hva de tåler før kontaktene brenner av. Sørg for at reléet du velger tåler minst den spenningen og strømmen du trenger. Spolen er oftest anngitt med hvilken spening den må ha for å aktiveres. Helst skulle vi visst hvor mye strøm den trakk (eller hvilken motstand den hadde) men det er ikke alltid tilgjengelig. En diode i parallell Når du endrer spenningen i en spole genererer den en spenning motsatt vei. Denne spenningen vil kunne ødelegge elektronikk som er tilkoblet så derfor kobler en ofte en diode "motsatt vei" over spolen. Denne dioden "kortslutter" denne strømmen fra spolen og skal altså kobles slik at "pilen" på dioden (vanligvis merket med en ring fysisk) peker mot pluss-delen av spolen. Spolestrøm Har vi et relé som trekker mindre enn de 20mA som en pinne på ESP32en tåler vil vi kunne koble den rett på mikriprosessoren, men i de fleste tilfeller trekker spolen mer enn dette og krever mer enn 3.3V så da må vi inn med en transistor. Dette gir også muligheten for at reléet kan drives fra en høyere spenning som 5V eller kanskje 12V. Nesten hvilken som helst NPN transistor kan brukes. Google litt rundt (eller spør ChatGPT) for å finne en passende verdi på R1. Ferdige Relé moduler Det er mye enklere å kjøpe en ferdig relémodul. Denne har både Diode og transistor på kretskortet og noen ganger også en optokobler. Om du kjøper en modul som skal ha 3.3V er jo alt greit men om du kun får tak i en på 5V kan du bruke den også om du allerede har 5V som du mater ESP32en med. Dersom modulen har en strap der du kan velge om den skal få strøm fra mikroprosessoren eller eksternt er det flott. Da bare fjerner du strappen og kobler 5V til JDVCC, IN1 til GND på ESP32en og VCC til GPIO pinnen. (Eller 5V til JDVCC, IN1 til GPIO pinnen og VCC til 3.3V på ESP32en) Er relé modulen 12V eller 24V og du har disse spenningene av andre grunner i prosjektet ditt kobler du på samme måte. Jeg hadde noen billige moduler fra Aliexpress som dessverre ikke hadde denne strappen og jeg måtte inn med en transistor for å drive dem. Du finner beregningene i "garasjeport prosjektet" mitt her på forumet: Det er jo ikke store koden som skal til for å skru en pinne av og på med MQTT men jeg tar den med alikevel: Disclaimer: Om du skal styre 230V med reléet ditt må du huske at du må være elektriker for å koble 230V. Hvis ikke kan huset ditt brenne ned og du får ingen ting fra forsikringsselskapet. Hjemmeautomasjon.no skal ikke ha noe ansvar for slike ting.
  4. Hvorfor? Hva er ulempene? Og: Hvor mange kan en koble på samme kabel da.
  5. Har du et koblings sjema?
  6. Fermate

    ESP32 Adresserbare LED (9)

    Her er kode for å styre addresserbare LEDS Bibliotekene er: Litt om LED Å slå på en LED er vanligvis noe av det aller første en gjør når en starter med å leke med ESP32. ESP32 har til og med en onboard LED på pinne 2 som en kan bruke til testing uten eksterne komponenter. En LED har ingen (stor) indre motstand som en lyspære og må ha en ekstern motstand for å begrense strømmen slik at den ikke brenner opp. Max støm på LEDen finner du i spesifiksjonen på den, der finner du også spenningsfallet over selve LEDen (Forward Voltage). Om den site ikke er oppgitt kan du slå den opp (typisk) i en tabell. Her er en kalkulator for motstand: https://www.digikey.com/en/resources/conversion-calculators/conversion-calculator-led-series-resistor Husk at ESP32 pinnen selv ikke tåler mer enn typisk 20mA. (Noen sier 40mA) Det lange beinet skal til +: Skal du ha 3 LEDs (Feks Rød, gul og Grønn) må du bruke 3 pinner på ESP32en og en egen motstand for hver LED. RGB Led Men det finnes LED som har alle 3 fargene bygget inn i samme LED, -en RGB LED. Her er alle mins koblet sammen og ført ut på den lengste pinnen: OBS De finnes både i "common Anode" og "Common Catode", husk å sjekke hva du kjøper. Her må du fremdeles ha en motstand for hver farge og bruke 3 pinner. RGB LED Strips De første LED stripene som kom var koblet slik at alle LEDene hadde sin egen motstand og fargene var ført ut på hver sin tilkobling: Disse oppfører seg altså litt som en RBG LED men drar veldig mye strøm på grunn av alle LEDene. Du kan altså ikke koble disse direkte til pinner på ESP32en men må sette en driver-boks i mellom eller en havlvleder som feks en MOS-Fet. (Det kommer en egen guid senere om MOS-Fet) For å få hvitt lys skal en slå på både Rød, grønn og Blå samtidig. Dette blir ikke helt hvitt så derfor ble det laget striper med en egen hvit LED i tillegg: RGBW. Til interiør belysning var det ønskelig med en varmere hvit og derfor kom RGBWW som har enda en ekstra LED som er warm-white. Adresserbare LED MEN fordi LEDstrips ble så poppulære bygget man etterhvert inn en egen liten IC på hver eneste LED på stripen slik at disse kunne styres med et signal fra ESP32en. Dette gjorde også at en kunne styre hver enkelt LED på stripen helt separat og ikke alle de RØD samtidig slik som på RGB stripene. Senere ble disse ICene integrert i selve LEDen. Disse LED stippene har altså bare 3 tilkoblinger: + - og data og hver IC sender dataene videre til nestemann. De trenger ingen motstander eller MOS-Fet og har egen strøm strømforskyning som kan være 24V for å kunne ha lange striper uten spenningsfall. Adresseringen er "relativ" slik at førstemann på stripa er nr 0 og nestemann er nr 1 osv. Dette skjer ved at ICen "teller opp" adressen med 1 og sender videre. Du kan altså klippe og skjøte hvor du vil og adressene er fremdeles fortløpende fra den første som får data og videre bortover. OBS Det betyr osgå at stripene har en rettning som du må følge når du kobler. Blir det brudd i datastrømmen slukker hele resten av rekka. De har derfor begynt å produsere striper med en esktra backup datakanal (merket BO - BI) Enkelt Adresserbare LED Det finnes også enkelt LED som er adresserbare. Jeg er veldig glad i slike for å la ESP32en kommunisere statuser med omverdenen. Her trenger jeg bare en pinne på ESP32en og en motstand (330 ohm) mellom ESP32en og LEDen og så kan jeg koble meg videre med så mange ekstra LED jeg bare trenger uten å bruke flere pinner eller motstander 🙂 Kode Koden for å jobbe med Adresserbare LED er super enkel. Alt skjer i biblioteket FastLED: #include "FastLED.h" #define NUM_LEDS 264 \\ Antall LED på stripa CRGB leds[NUM_LEDS]; \\ Et "array" led LEDene #define PIN 4 \\ Pinnen der datakabelen på stripen er tilkoblet void setup() { FastLED.addLeds<WS2812, PIN, RGB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip ); } WS2812 er typen IC på LED stripen. Så er det bare å skru på en og en LED slik: leds[Pixel].r = red; leds[Pixel].g = green; leds[Pixel].b = blue; der Pixel er adressen til LEDen, og første LED er 0. og red, green, blue er verdier fra 0 til 255 for styrken på lyset. Eller slik om du foretrekker det: leds[Pixel] = CRGB(Red, Green, Blue); eller slik leds[Pixel] = CHSV(Hue, Saturation, Value); Når du har satt alle veridene på alle LEDene du ønsker, sender du det til stripe med denne kommandoen: FastLED.show(); Du lager ganske fort en par forenklings rutiner som feks disse: void setPixel(int Pixel, byte red, byte green, byte blue) { leds[Pixel].r = red; leds[Pixel].g = green; leds[Pixel].b = blue; } void setAll(byte red, byte green, byte blue) { for(int i = 0; i < NUM_LEDS; i++ ) { setPixel(i, red, green, blue); } showStrip(); } Jeg har ikke noe MQTT kode her for det klarer dere selv, men jeg har en liten kodesnutt som kjøres dersom barnebarna roper "Alexa show me rainbow" som dere kan få:
  7. Jeg kjøpte ved en feiltakelse en haug med DS1820 fra Ali. Dette er en eldre modell som ikke er kompatibel! Om noen har kode for ESP32 for disse hadde det vært kult om dere deler den. DS1820 og DS18B20 skal kunne kobles med "parasite power". Dvs at IC'en henter power fra selve datalinjen og at en derfor kan klare seg med 2 ledere isteden for 3. Om noen har konkret erfaring og testede løsninger for dette (linker klarer jeg å google selv 🙂 ) hadde det være fin å høre fra dere.
  8. Her er kode for å lese DS18B20: Bibliotekene er: Dalles DS18B20 ser ut som en transistor men er egentlig en IC. Den finnes i TO-92 (som en liten transistor) pakning men også bygget inn i en vanntett rustfri probe med lang kabel: Den er superenkel å bruke til å lese temperaturer med og koster lite. Det eneste den trenger er en pull-up resistor på 4,7k (Mellom + og Data) Spenningen kan være mellom 3 og 5,5V (Altså kan du bruke 3,3V spenningen fra ESP32en om det trengs. Mange sensorer Du kan koble opptil 32 stk DS18B20 etter hverandre på samme kabelen (Kun 1 pullup resistor) Du kan spørre etter antallet slik: deviceCount = sensors.getDeviceCount(); Og du leser dem slik: Temp1=sensors.getTempCByIndex(0); Temp2=sensors.getTempCByIndex(1); Alarmer Biblioteket inneholder også kode for alarmer om du ikke vil kode dem selv. Da må du også finne adressen til sensoren: DeviceAddress Temp1Addr; sensors.getAddress(Temp1Addr, 0); så kan du sette alarmtemperaturene: sensors.setHighAlarmTemp(Temp1Addr, 26.5); sensors.setLowAlarmTemp(Temp1Addr, 19); Og teste om alarmen er aktiv: if (sensors.hasAlarm(Temp1Addr)) { OBS Den trigger både på høy og lav så du må lese temp for å finne ut hvem. Leseintervaller Når du skal bruke den med MQTT må du bestemme deg for NÅR den skal rappportere temperaturen. Hver gang temperaturen endrer seg (mer en x grader)? Fast hvert x sekund Hver gang du ber om det. For den har passert over/under en granse (Alarm) De to første kan hardkodes eller de kan ha en default verdi og så kan de endres med MQTT kommandoer. Interupt Om du skal lese dem hvert x sekund kan du bruke et interupt. (Om du bruker en delay kan jo ikke ESP32 gjøre noe annet fornuftig mens den venter) Et interupt avbryter prosessoren med det den driver med og kjører en rutine, når rutinen er ferdig fortsetter prosessoren der den slapp. Rutinen som skal kjøres merkes med IRAM_ATTR slik at compileren legger den i instruksjons RAM for at den skal kunne kjøres raskt: void IRAM_ATTR onTimer(){ itsTimeNow=1; } En slik rutine bør gjøre så lite som mulig for ikke å forstyrre prosessoren for mye. Det enkelste er å bare sette en variabel. Denne bør deklareres med voilatile for at compileren skal holde den i RAM (og ikke i et register) slik at hovedprogrammet kan lese den correct: volatile int itsTimeNow = 0; I hoved loop'en kan vi nå teste på denne slik: if (itsTimeNow==1 ) { read_temp(); MQTTclient.publish("TempTestClient/Temp1", String(Temp1)); itsTimeNow=0; // Reset } Timer ESP32 har flere (2-4) harware timere som vi kan bruke til å kalle på interuptet. Du deklarerer den slik: hw_timer_t *My_timer = NULL; og setter den til å telle slik: My_timer = timerBegin(0, 8000, true); Fordi disse timerne teller VELDIG fort har jeg her brukt en "prescaler" på 8000 som gjør at jeg kan be om et interupt hver gang den når 10000 og det vil utgjøre et sekund: timerAttachInterrupt(My_timer, &onTimer, true); // Kobler interupt rutinen til timeren timerAlarmWrite(My_timer, 100000, true); //10000 = 1 Sek Altså hvert 10sek her timerAlarmEnable(My_timer); //start Her er et forslag til MQTT kode som poster temp fra 2 sensorer på forskjellige vis:
  9. Takk for rast svar men må bare pressisere litt: Alexa -Jeg ønsker IKKE å skrive min egen Alexa skill 🙂 - Jeg må ikke bare ha mulighet til å styre ting med Alexa men også å stille spørsmål og få svar. (Ikke bare status fra en Device men kunne sette sammen svar selv) Touch interface til iPad Jeg snakker ikke om å lage en egen app til iPad her altså, men å kunne konfigurere grafikk og data og laste det opp til en ferdig app. (HSTouch har en designer app (ligner på Visual Studio) der du limer inn grafikk og kobler den til funksjonalitet. Den genererer en XML fil som du laster opp til en ferdig app (HSTouch) på iPad ) eller missforstod jeg deg når du sa: ?
  10. Velger å poste her pga tittelen på tråden 🙂 Jeg har kjørt HomeSeer siden tidenes morgen men jar begynt å tenke litt på HA. Før jeg tenker mer må jeg ha klarhet i en veldig viktig ting: Har HA noen tilsvarende funksjonalitet som -Jon00s Alexa helper Som gjør det mulig å spørre Alexa om ting i smarthuset og få svar -HSTouch Mulighet til å enkelt designe touch interface til en iPad (eller tilsvarende)
  11. Interessant. Han du noen tanker om denne kontra SONOFF (bortsett fra nettporten) ?
  12. Kul idé! Jeg legger "deep sleep" på list mi over ESP32/MQTT-lego 🙂 (Har ikke hat tid til å legge ut nye "klosser" på en stund men det kommer 🙂 )
  13. men etter å ha tenkt meg om litt: Jeg Trenger jo ikke å gå via Voice Monkey for å trigge den WEB HOOKen i IFTTT ! Det er jo en vanlig link jeg kan fyre opp fra HomeSeer direkte https://maker.ifttt.com/trigger/startcoffee/json/with/key/xxxxx Å starte ting i HS fra Alexa gjør jeg jo allerede..
  14. Har lest litt på Voice Monkey sine sider i dag og satt opp en WEBHOOK i IFTTT som jeg kan kalle fra en FLOW i Voice Monkey. Denne kan jeg i sin tur kalle fra en ROUTINE i Alexa. Så da var kanalen åpnet for å lage kaffe fra senga igjen 🙂 Er litt usikker på hvordan jeg best kan styre antall kopper og slikt på en effektiv måte. Det logiske er en dialog med Alexa: Meg: Alexa, make coffee Alexa: OK, how many cups? Meg: 6 Alexa: at what strength Meg: Medium Alexa: Ok shall I start making 6 cups of medium strength coffe? Meg: yes MEN: Jeg vet at kona hater lange dialoger med Alexa så antakelig vis blir det bare: Alexa, Make 6 cups of coffee Jeg gleder meg til å se på mulighetene til å la Alexa snakke til meg trigget fra en Event i HS uten at jeg har snakket til henne først. Kommer muligens tilbake med en guide om tiden strekker til...
  15. Jeg har mange kaffetraktere fra Smarter. Gen 1 var lett å hacke og dermed lett å styre men gen 2 har kun ett API: IFTTT 😞 For å koke kaffe fra senga før jeg hadde stått opp ble det laget masse IFTTT triggere og startet dem fra Alexa: Alexa, trigger Make two cups of coffee Alexa, trigger Make four cups of coffee osv. Når IFTTT begynte å ta betalt for triggere over 2 stk ble dette gjort om til en start av den forhånds innstillte trakteren med en "Alexa turn on coffee" da dette merkelig nok var en av/på SWITCH som ALexa hadde detektert. Men så sluttet hele greia å virke; Alexa fant ingen switch lengre og så bestemte Amazon seg for å droppe support av IFTTT helt. I og med at IFTTT er den ENESTE måten jeg kjenner til som jeg kan starte kaffetrakteren på begynte jeg å lete etter omveier. (Kaffe laget fra senga slik at den er ferig når vi kommer ned om morgenen har VELDIG høy WAF.) Først trodde jeg at jeg måtte ha full IFTTT abonnement og bet i gresset og tegnet det. Og jada nå kan jeg styre kaffetrakteren fra IFTTT. Men hvordan få trigget IFTTT fra Alexa? Hm IFTTT har HomeSeer som en trigger... teste teste... NEI Det funker IKKE, dvs noen ganger funker det... noen ganger med en forsinkelse på 2 timer (ja du leste riktig).. men vanligvis ikke i det heletatt. Jeg har alltid ønsket meg at HomeSeer skulle kunne snakke til meg gjennom ALexa og gi meg beskjeder UTEN at jeg hadde snakket til Alexa først. "Nå er posten kommet" eller "Det har slått om til mildvær, ønsker du å skru på varmekabelen i takrenna?" Så da Voice Monkey kom, kastet jeg meg over det. Men igjen.. da det ble en betalt tjeneste sluttet den interessen. (Jeg brure jo skrive min egen skill ti Alexa men det blir liksom ikke noe av.... 😉 ) Men nå ser jeg altså at Voice monkey tilbyr å trigge en IFTTT teneste (så vidt jeg forstår?) så nå har jeg tegnet et fullt abonnement og forsøker å sette det opp. Men jeg finner bare andre veien? (Trigge ALexa fra IFTTT via Voice Monkey) Jeg trenger å trigge IFTTT fra Voice Monkey! HJELP!
×
×
  • 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.