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

Anbefalte innlegg

Skrevet

Når tannkosten stoppes etter kl 2130 så sendes et pushvarsel om at huset går i nattmodus om 10 min (ved å sende en MQTT som fanges opp av HomeSeer). Kan trykke på varslet og avbryte automatikken om jeg ønsker. 🙂 

 

IMG_5130.thumb.jpeg.dead2dae1316afda88c1bd0d34784214.jpeg

  • Like 1
Skrevet
ZoRaC skrev (4 timer siden):

Når tannkosten stoppes etter kl 2130 så sendes et pushvarsel

Er det tannreguleringen eller kosten som har Zigbee?

  • Haha 1
  • Confused 1
Skrevet

Inspirert av @Fermate sine ESP32 byggeklosser kom jeg på tanken med OTA. Så først en video som ga grunnleggende info men var litt halvhjertet. Ny video ga hele pakken...

 

Da begynner ESP32 virkelig å bli gøy!

  • Like 2
Skrevet (endret)
1 hour ago, SveinHa said:

Inspirert av @Fermate sine ESP32 byggeklosser kom jeg på tanken med OTA. Så først en video som ga grunnleggende info men var litt halvhjertet. Ny video ga hele pakken...

 

Da begynner ESP32 virkelig å bli gøy!

Denne videoen fra eminente Andreas Spiess er 3 år gammel, og det har skjedd en god del på de tre årene - kanskje spesielt på hvilken funksjonalitet som har kommet inn i Arduino framework (så man når mer avanserte funksjoner fra Arduino IDE).

 

Som eksempel er det nå veldig enkelt å gjøre ADC-lesing som benytter kalibrering som er lagt inn i hver enkelt chip/modul fra fabrikken. Det var ganske tungvint å få til for 2-3 år siden.

 

Siden jeg aldri har benyttet Bluetooth som ligger i de fleste ESP variantene, er det ESP32-S2 som er blitt min "arbeidshest". Det finnes moduler i flere varianter, og lett tilgjengelige på Aliexpress.


Jeg kan bare bekrefte at ESP32 er gøy! 👌

 

EDIT: Jeg holdt på å glemme noe annet viktig som har kommet: Native USB, dvs man trenger ikke lengre FTDI for å programmere de, det hele kan gjøres via USB. Gamechanger!

Endret av ArnieO
Skrevet

Min VVB er styrt av en esp8266 og den får stadig ny funksjonalitet. I sommer byttet jeg ut to DS18B20 sensorer med Oso sin sensorstav med 3 temperaturfølere.
De 3 sensorene bruker jeg til å prioritere oppvarming av vannet. Hvis bunntemperatur kommer under ønsket temperatur, så varmes vannet med lav effekt og typisk rundt om 100W. Kommer sentertemp. under ønsket temperatur, så økes effekten "passelig" og hvis topptemperatur er under ønsket temp. så er det 100% effekt og 2kW. På den måten klarer jeg å stoppe at temperatur synker enda lavere uten å utfordre nettleie og å bruke minst mulig strøm når pris ikke er optimal.
Temperatur settes til middels en gang i døgnet og på billigste timer. Til høy hver 11. dag på billigste timer.
I det siste har jeg lagt inn nøyaktig beregning av oppvarmingstid slik at jeg treffer bedre på den billigste timen istedenfor å utnytte nest-billigste og 1/3 av den billigste. Effekten på varmeelementet er via en SSR så jeg kan styre effekt trinnløst vha puls-bredde modulering og dette er effektivt for å holde seg under effekttrinn på nettleie.
Psnitt/Pmaks er snitt effekt på siste oppvarming delt på 2000W. Da får jeg et forholdstall som jeg bruker til å beregne oppvarmingstid på neste døgns syklus. Det gir ikke nøyaktig tid, men det er en god indikasjon når VVB blir nedprioritert i forhold til lading av biler.

Esp8266 er selvsagt programmert ved hjelp av Esphome. Kodefilen er ikke mer enn 360 linjer.

image.thumb.png.9161a3d176d54c0bdc90af54862a3fee.png

image.png.01056683052f10329e79d7bf05d786eb.png

  • Like 4
Skrevet
stigvi skrev (51 minutter siden):

Min VVB er styrt av en esp8266 og den får stadig ny funksjonalitet. I sommer byttet jeg ut to DS18B20 sensorer med Oso sin sensorstav med 3 temperaturfølere.
De 3 sensorene bruker jeg til å prioritere oppvarming av vannet. Hvis bunntemperatur kommer under ønsket temperatur, så varmes vannet med lav effekt og typisk rundt om 100W. Kommer sentertemp. under ønsket temperatur, så økes effekten "passelig" og hvis topptemperatur er under ønsket temp. så er det 100% effekt og 2kW. På den måten klarer jeg å stoppe at temperatur synker enda lavere uten å utfordre nettleie og å bruke minst mulig strøm når pris ikke er optimal.
Temperatur settes til middels en gang i døgnet og på billigste timer. Til høy hver 11. dag på billigste timer.
I det siste har jeg lagt inn nøyaktig beregning av oppvarmingstid slik at jeg treffer bedre på den billigste timen istedenfor å utnytte nest-billigste og 1/3 av den billigste. Effekten på varmeelementet er via en SSR så jeg kan styre effekt trinnløst vha puls-bredde modulering og dette er effektivt for å holde seg under effekttrinn på nettleie.
Psnitt/Pmaks er snitt effekt på siste oppvarming delt på 2000W. Da får jeg et forholdstall som jeg bruker til å beregne oppvarmingstid på neste døgns syklus. Det gir ikke nøyaktig tid, men det er en god indikasjon når VVB blir nedprioritert i forhold til lading av biler.

Esp8266 er selvsagt programmert ved hjelp av Esphome. Kodefilen er ikke mer enn 360 linjer.

 

 

Hvilken SSR benytter du? Nysgjerrig på hardwaren og hvordan dette er koblet sammen. 🙂

Skrevet
MrE skrev (28 minutter siden):

Hvilken SSR benytter du? Nysgjerrig på hardwaren og hvordan dette er koblet sammen. 🙂

https://www.elfadistrelec.no/no/elektriske-releer-rm48-1no-50a-530v-skrueklemme-carlo-gavazzi-rm1a48d50/p/13745035?queryFromSuggest=true&itemList=suggested_search

Ser denne har økt voldsomt i pris, men det var denne jeg kjøpte. Esp8266 er på en Sonoff sak som hadde et lite 10A rele. Jeg loddet av releet og førte to ledninger fra der releets spole var koblet til, til optokobler på SSR. Og så satte jeg en inn en motstand i parallell slik at motstand totalt ble den samme som motstanden i releets spole.

Egenskap ved SSR som var viktig for meg var innkobling og utkobling ved nullgjennomgang av spenning og at den hadde riktig spenningsnivå på optokobler. Den er litt overdimensjonert på strøm, men greit nok. Kjøleplaten er stor nok til at den holder seg under 50 grader på full belastning.


image.thumb.png.2b48bc2501d8aff5d5b2199f1a7b01a5.png

 

IMG_20240130_212101385b.jpg

  • Like 1
Skrevet
SveinHa skrev (14 timer siden):

kom jeg på tanken med OTA.


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.

  • Like 1
Skrevet

Jeg er, som sikkert flere andre, avhengig av en daglig dose medisiner. Sånn er det når en er arvelig belastet med høyt blodtrykk. For å huske å ta medisin og for å ha kontroll på beholdning, har jeg brukt en app. Men har egentlig alltid tenkt at de som lager denne app'en får mye informasjon om meg. Så for et par dager siden fant jeg ut at jeg ville la Home Assistant styre dette.

Så det jeg har nå er en side i HA som viser min tablettbruk. I HA kan en sette visning og tilgang til sider ut i fra innlogget bruker så når kona tar dette fram på hennes mobil så ser hun sitt og ikke mitt. HA holder kontroll på beholdning og skifter farge på ikon når det nærmer seg tur til apotek. Har jeg ikke trykket på "Medisin tatt" knappen, får jeg et varsel på tlf som jeg svarer ja eller nei på (actionable notification som HA appen har). Her kan jeg sette "kanal" slik at jeg kan bruke egen varsellyd. Etter en time med litt fikling har jeg noe som fungerer bedre enn medisin-appen. Og herfra er det mange muligheter. Jeg kan feks varsle med et lys hjemme. Jeg kan la være å varsle på tlf hvis jeg ikke er hjemme. Det er jo ingen vits i det når tablettene ligger hjemme. Og jeg kan ha en trykknapp i skuffen på badet som teller ned beholdning.

PS. Jeg tar noen tabletter om morgen og noen om kveld. Selvsagt måtte jeg da lage det slik at det telles ned på de tablettene som gjelder for aktuelt tidsrom. Og det vises når de ble sist tatt.

image.png.f27b1e210faf0e18f01ed89ffbe168da.png

  • Like 4
Skrevet
stigvi skrev (1 time siden):

Jeg er, som sikkert flere andre, avhengig av en daglig dose medisiner. Sånn er det når en er arvelig belastet med høyt blodtrykk. For å huske å ta medisin og for å ha kontroll på beholdning, har jeg brukt en app. Men har egentlig alltid tenkt at de som lager denne app'en får mye informasjon om meg. Så for et par dager siden fant jeg ut at jeg ville la Home Assistant styre dette....


Jeg har også funnet ut at det er enklere å la smarthuset holde oversikt over oppgaver i hjemmet som skal gjøres med ujevne mellomrom. For eksempel ligger vanning av potteplanter og bytte av filter på ventilasjonsanlegget der, sånn at alle kan se når det sist ble gjort i Homeseer Touch som vi bruker. Etter en viss tid begynner smarthuset å mase på oss, sånn at det ikke blir glemt.

  • Like 1
Skrevet

Hjemme hos oss spør fruen ofte "kan jeg sette på vask nå?" (strømpris) eller "hvilket søppel er det som hentes denne uken" eller kommenterer "når ser det ut som at det er høy sjø!" (vi bor ved sjø), mens jeg selv ofte lurer på om det var i dag eller i morgen det er postlevering, og hva blir været? Så for å få denne informasjonen lett tilgjengelig og oppdatert så lot jeg meg friste og hev meg på denne nye trenden med bruk av epapir-skjermer for smarthus (https://github.com/jjwbruijn/OpenEPaperLink) En epapir-skjerm er lettlest i alt lys, er lett å plassere siden den bruker batteri, men egner seg ikke til live-data som oppdateres ofte. Det eksisterer en integrasjon med Home Assistand, men jeg bruker Homeseer så måtte løse dette på egenhånd. Man sender data til skjermenes aksesspunkt med HTTP Post.

 

Må si meg ganske fornøyd med resultatet. Dette er en 7.5" skjerm. Planen var å bruke prosjektet til å lære meg Python, men jeg feiget ut når jeg skjønte rekkevidden av integrasjonene og trøbbelet med å feilsøke dette i ukjent språk. Jeg valgte derfor å bruke PowerShell, som er noe jeg kan men som er uvanlig brukt for slike behov. Det gjorde API-er enkelt for meg, men gav meg noen utfordringer rundt å generere bildet som ble sendt til skjermen. Skjermen har kun fargene hvit, sort og rød, så bildedata som sendes kan ikke ha noen form for aliasing rundt fonter eller grafikk. Det var krevende å finne en font som passet i lite format uten aliasing.

 

Data som vises er.

  • Strømpris for dagen i dag, eller dagen i dag + 8 timer dersom neste dags priser er tilgjengelig. Data fra Moskus sin Tibberseer i Homeseer. Grafen tilpasses også dersom det er negative strømpriser.
  • Dager for levering av post fra Bring sitt API: https://developer.bring.com/
  • Varslet tidevann fra Kartverket sitt API: https://www.kartverket.no/api-og-data/tidevann-og-vannstandsdata
  • Søppeltømming fra Norkart. Her er det ikke fritt publisert API med med hjelp fra innlegg her på forumet fra Moskus og Clio75 så kom jeg et stykke på vei, men det var endringer i både URL og annet som gjorde at jeg måtte grave en del selv for å finne ut av dette.
  • Vær neste halve dag og data om soloppgang, solnedgang og elevasjon fra Yr.no: https://api.met.no/
  • Strømforbruk fra Homeseer. Her har jeg enheter som logger forbruk, og med events og scripts i Homeseer mellomlagrer jeg informasjon i virtuelle devicer og lagrer daglig informasjon til CSV-filer. Disse CSV-filene benyttes som grunnlag for å beregne siste 30 dagers forbruk.

Data fra eksterne API som bare trenger daglige oppdateringer blir cachet, slik at jeg ikke kaller disse API-ene mange ganger per dag. Kun Yr, havnivå og Tibberseer kalles hver time.

 

Scriptet som gjør alt dette er per nå ganske tilpasset Homeseer og mitt oppsett der. Plan fremover nå er å oversette dette til Python slik at det er mer aktuelt å dele scriptet. Dersom noen lurer på noe spesifikt om bruk av API kan jeg delen denne delen av scriptet, kanskje i en annen diskusjon 🙂

 

 

IMG20240202061535.jpg

  • Like 4
Skrevet

Garasjeport er populært å automatisere. Her er min løsning og kanskje kan noen bruke det videre.

Min åpner er av den enkle typen. Den har to innganger, en for nødstopp og en for å veksle opp eller ned. 

Til denne har jeg koblet til et esp32 kort som jeg kjører esphome på.

IMG_20240203_101850076b.jpg.dfa49dde7d9c6b488c4e51b93321cb43.jpg

 

I esphome har jeg definert en "cover" som er tidsbasert og med endebrytere.

 

cover:
  - platform: feedback
    name: "${devicename}"
    id: garasjeport
    has_built_in_endstop: true
    assumed_state: false
    direction_change_wait_time: 5s
    close_endstop: status_lukket
    open_endstop: status_aapen
    open_duration: 15s
    close_duration: 18s



Endebrytere trenger en strengt tatt ikke, men uten de så er det vanskelig for Home Assistant å vite om port er åpen eller lukket. Jeg hadde i land tid en zigbee dørsensor som viste om port var lukket og status på den ble sendt til esp32 slik at jeg kunne sette status på "cover" at porten var igjen. Etterhvert har jeg byttet ut zigbee sensor med brytere koblet til esp32 direkte. Ikke fordi det virker bedre, men fordi jeg hadde lyst.

IMG_20240203_101940711b.jpg.f7c3734f1347c6026dc7b19cbe73db9d.jpg

 

I tillegg har jeg definert noen binære sensorer i esphome som forteller om status på port. Det er lukket, åpen og i bevegelse. I tillegg noen trykknapper for å starte en sekvens og å avbryte denne sekvensen. Til slutt noen innverdier for å sette antall sekunder til port åpnes og lukkes.

I og med at denne er synlig i Home Assistant som en "cover", har jeg full kontroll på port. Jeg kan dra i en skyvekontroll og settte porten til en vilkårlig posisjon. Ikke så mye brukt til annet enn å sette i luftestilling eller åpne en halvmeter for å ta i mot en pakkelevering når jeg selv er på jobb. Jeg har et kamera inne i garasjen så jeg kan følge med på at pakken er kommet innenfor.
image.png.cec52f0d30b4f34cb7065177a6d2486b.png

Til porten fulgte det med to fjernkontroller og disse var årsaken til at jeg lagde min egen styring. Fjernkontrollene har tydeligvis dagshumør og noen dager må en helt inntil garasjeportåpnerens antenne før de reagerer. Det var veldig frustrerende. 
Det første jeg lagde, var en NFC brikke på en lur og usynlig plass i bilen. Når jeg holder telefon over denne, så åpnes port.
Etterhvert er det kommet zigbee-brytere inne i hus ved utgangsdør og inne i garasje ved port. Med disse kan jeg åpne og lukke, samt slå på nødstopp. Jeg har også lagd det slik at hvis bakluke på bil er åpen så slås nødstopp på. Da kan ikke port betjenes fra annet enn innside av garasje ved å slå av nødstopp først.
Og så har jeg en trykknapp i garasje som setter i gang en sekvens med å vente-åpne-vente-lukke. Da får en tid til å sette seg inn i bil og port går ned automatisk etter å ha kjørt ut. Sekvensen avbrytes hvis en trykker på knapp en gang til eller åpner garasjedør. Kona har en egen evne til å finne ut at hun ikke har bilnøkkel med seg og da må hun inn igjen i huset. Da er det dumt at port går opp og ned i mellomtiden.

Sensorer som esphome sender til Home Assistant, brukes til alarm og å trigge lys i garasje. Jeg setter også farge på en lyslist over port som viser om den er i bevegelse eller helt oppe.

  • Like 3
Skrevet
On 10/12/2023 at 14:54, quackyo said:

Helt korrekt. en VPN-forbindelse er en toveis forbindelse, så når RPi på hytta har koblet opp til VPN-server hjemme vil du fra hytta kunne nå "Hjemme", og omvendt fra hjemme også nå hytte-nett.

 

Ting tar som kjent tid, men ville bare gi en tilbakemelding på at jeg installerte OpenVPN klient på RPien på hytta mot OpenVPN serveren hjemme, og nå jeg har jeg tilgang til Domoticz på hytta hjemmefra. Toveis, slik som du sa. Takk for hjelpen. 😀

Skrevet (endret)
On 02/02/2024 at 08:29, kristianml said:

Hjemme hos oss spør fruen ofte "kan jeg sette på vask nå?" (strømpris) eller "hvilket søppel er det som hentes denne uken" eller kommenterer "når ser det ut som at det er høy sjø!" (vi bor ved sjø), mens jeg selv ofte lurer på om det var i dag eller i morgen det er postlevering, og hva blir været? Så for å få denne informasjonen lett tilgjengelig og oppdatert så lot jeg meg friste og hev meg på denne nye trenden med bruk av epapir-skjermer for smarthus (https://github.com/jjwbruijn/OpenEPaperLink) En epapir-skjerm er lettlest i alt lys, er lett å plassere siden den bruker batteri, men egner seg ikke til live-data som oppdateres ofte. Det eksisterer en integrasjon med Home Assistand, men jeg bruker Homeseer så måtte løse dette på egenhånd. Man sender data til skjermenes aksesspunkt med HTTP Post.

 

Må si meg ganske fornøyd med resultatet. Dette er en 7.5" skjerm. Planen var å bruke prosjektet til å lære meg Python, men jeg feiget ut når jeg skjønte rekkevidden av integrasjonene og trøbbelet med å feilsøke dette i ukjent språk. Jeg valgte derfor å bruke PowerShell, som er noe jeg kan men som er uvanlig brukt for slike behov. Det gjorde API-er enkelt for meg, men gav meg noen utfordringer rundt å generere bildet som ble sendt til skjermen. Skjermen har kun fargene hvit, sort og rød, så bildedata som sendes kan ikke ha noen form for aliasing rundt fonter eller grafikk. Det var krevende å finne en font som passet i lite format uten aliasing.

 

Data som vises er.

  • Strømpris for dagen i dag, eller dagen i dag + 8 timer dersom neste dags priser er tilgjengelig. Data fra Moskus sin Tibberseer i Homeseer. Grafen tilpasses også dersom det er negative strømpriser.
  • Dager for levering av post fra Bring sitt API: https://developer.bring.com/
  • Varslet tidevann fra Kartverket sitt API: https://www.kartverket.no/api-og-data/tidevann-og-vannstandsdata
  • Søppeltømming fra Norkart. Her er det ikke fritt publisert API med med hjelp fra innlegg her på forumet fra Moskus og Clio75 så kom jeg et stykke på vei, men det var endringer i både URL og annet som gjorde at jeg måtte grave en del selv for å finne ut av dette.
  • Vær neste halve dag og data om soloppgang, solnedgang og elevasjon fra Yr.no: https://api.met.no/
  • Strømforbruk fra Homeseer. Her har jeg enheter som logger forbruk, og med events og scripts i Homeseer mellomlagrer jeg informasjon i virtuelle devicer og lagrer daglig informasjon til CSV-filer. Disse CSV-filene benyttes som grunnlag for å beregne siste 30 dagers forbruk.

Data fra eksterne API som bare trenger daglige oppdateringer blir cachet, slik at jeg ikke kaller disse API-ene mange ganger per dag. Kun Yr, havnivå og Tibberseer kalles hver time.

 

Scriptet som gjør alt dette er per nå ganske tilpasset Homeseer og mitt oppsett der. Plan fremover nå er å oversette dette til Python slik at det er mer aktuelt å dele scriptet. Dersom noen lurer på noe spesifikt om bruk av API kan jeg delen denne delen av scriptet, kanskje i en annen diskusjon 🙂

 

 

IMG20240202061535.jpg

Hvor kjøpte du skjermen?

Har du laget eget aksesspunkt eller kjøpt ferdig?

 

Veldig bra det du har laget!

Endret av Guahtdim
Skrevet
Guahtdim skrev (2 timer siden):

Hvor kjøpte du skjermen?

Har du laget eget aksesspunkt eller kjøpt ferdig?

 

Veldig bra det du har laget!

 

Jeg kjøpte aksesspunkt og noen mindre skjermer fra NIC i Nederland:

https://www.tindie.com/products/electronics-by-nic/openepaperlink-mini-ap-v3-zigbee-wifi-gateway/

 

Og den store skjermen kjøpte jeg ved å sende melding til personen ATC1441 på Discord-kanalen med samme navn:

https://discord.gg/9bs5BEtp

Merk at den store skjermen mangler støtte for en del av den nyere funksjonaliteten som er omtalt på https://github.com/jjwbruijn/OpenEPaperLink/wiki eller på Discord, men den fungerer fint for meg pga at jeg genererer bildet selv og laster opp til skjermen fremfor å benytte innebygget funksjonalitet eller json-format på tegning av grensesnitt.

  • Like 1
Skrevet

Har laget en AMS HAN-port leser med Matter over Thread.

 

image.png.e5641c9190f1d8a136c2878c5f389de5.png

 

Da dukker strømmåleren opp som et Matter device i kontrolleren min og jeg får inn målerverdiene:

image.png.018dd097c79690fb0c058bafce155cd5.png

Har benyttet følgende hardware:

 

EFR32xG24 Explorer Kit - Silicon Labs (silabs.com)

M-Bus Slave Click (mikroe.com)

 

Koden som kjører på devicet og som leser og parser data fra HAN-porten er skrevet i C++.

 

En utfordring er at Matter 1.2 standarden enda ikke støtter strømmåling. Måtte derfor trikse litt med hvor verdiene rapporteres. Håper Matter 1.3 kommer med støtte for dette, slik at det kan gjøres i henhold til standard. Spiller ikke så mye rolle for mind del siden jeg har skrevet min egen Matter kontroller, men ville vært fint om standarden støttet dette. Som det egentlig er overraskende at den ikke gjør.

  • Like 2
Skrevet
16 minutes ago, OlavT said:

Har laget en AMS HAN-port leser med Matter over Thread.

Flott prosjekt!

 

For oss som foreløpig ikke vet så mye om Matter og Thread - kunne du skrevet litt (kanskje en egen tråd) om hva det er og hvorfor man bør bruke det?

  • Like 1
Skrevet
59 minutes ago, OlavT said:

Fint om det kunne blitt opprettet et eget forum for Matter først.

Det er en god idé. Er det kanskje @Moskus som kan fikse slikt? Husker ikke lengre hvem som er Admin her.

 

Skrevet (endret)

Nyeste prosjekt for e-papir-skjerm som jeg har småplukket litt på noen dager: Script for å koble til ChatGPT sitt bildegenererende API (Dall-E 3) og be den daglig generere et bilde basert på input. Input er statisk per nå, ""create a random artistic nature photo with the colors white, black and red", men en fremtidig mulighet kan være å generere input mer random med en ordliste og noen regler. Det fungerer ganske bra med statisk input, for hvert bilde som genereres er vidt forskjellig fra det forrige. Det krever betalt brukerkonto hos chatgpt og hvert bilde koster omtrent 80 øre å generere. Bildet skaleres av scriptet for å passe med oppløsning på skjerm, og siden dette er epapir så er skjermen begrenset til fargene hvit, sort og rød, men bruker til gjengjeld minimalt med strøm og går på batteri.

 

Script er powershell, men det kaller et python script for å laste opp bildefilen til skjermens aksesspunkt fordi jeg aldri fikk til å sende parametre på en måte som aksesspunktet tolket korrekt med powershell.

 

Opplastet bilde viser på skjermen, original fra chatgpt og et annet eksempel på bilde som er generert med samme input.

 

#Script to generate a daily artistic image using AI-model Dall-e-3 from OpenAI, and scale/convert the image for OpenEPaperLink
#OpenEPaperLink: https://github.com/jjwbruijn/OpenEPaperLink/wiki
# Register API-key: https://platform.openai.com/api-keys
# Add billing: https://platform.openai.com/account/billing/overview
#OpenAI API-docs: https://platform.openai.com/docs/introduction

Add-Type -AssemblyName System.Drawing

$path = "\AI-art\"
$filename = (Get-Date).toString("dd.MM.yyyy") + "_" + (Get-Random) + ".png"
$outputFilename = "ai-art.jpg"
[int]$screenWidth = 640
[int]$screenHeight = 384
$epapirMAC = "0000021E73677438"
$epapirAPIP = "http://192.168.1.180/imgupload"
$epapirDither = "1"

$requestSuccess = $true
$chatGPTAPIKey = "key"
$chatGPTAPIUri = "https://api.openai.com/v1/images/generations"
$chatGPTAPIPrompt = "create a random artistic nature photo with the colors white, black and red"
$chatgptHeaders = @{
    "Authorization" = "Bearer $chatGPTAPIKey"
    "Content-Type" = "application/json"
}
#Cost is dependant on size, model and quality. Using Dall-e 3 and "normal" quality: 1024x1024 (square) is $0.04, 1792x1024 (landscape) is $0.08
$chatgptBody = @{
    "model" = "dall-e-3"
    "prompt" = $chatGPTAPIPrompt
    "n" = 1
    "size" = "1792x1024" 
}

try {
    $chatgptResponse = Invoke-WebRequest -Uri $chatGPTAPIUri -Headers $chatgptHeaders -Body (ConvertTo-Json $chatgptBody) -Method Post    
    $chatgptData = $chatgptResponse | ConvertFrom-Json
}
catch {
    $requestSuccess = $false
}

if ( $requestSuccess ) {
    try {
        $downloadRequest = Invoke-WebRequest -Uri $chatgptData.data.url -OutFile ($path+$filename)        
    }
    catch {
        $requestSuccess = $false
    }

}

if ( $requestSuccess ) {
    $OldImage = [System.Drawing.Bitmap]::FromFile($path+$filename)

    $Bitmap = New-Object -TypeName System.Drawing.Bitmap -ArgumentList $screenWidth, $screenHeight
    $NewImage = [System.Drawing.Graphics]::FromImage($Bitmap)
     
    #Retrieving the best quality possible
    $NewImage.SmoothingMode = "HighQuality"
    $NewImage.InterpolationMode = "HighQualityBicubic"
    $NewImage.PixelOffsetMode = "HighQuality"
    $NewImage.DrawImage($OldImage, $(New-Object -TypeName System.Drawing.Rectangle -ArgumentList 0, 0, $screenWidth, $screenHeight))

    #Save as JPG with best quality possible
    $EncoderParam = [System.Drawing.Imaging.Encoder]::Quality
    $EncoderParamSet = New-Object System.Drawing.Imaging.EncoderParameters(1) 
    $EncoderParamSet.Param[0] = New-Object System.Drawing.Imaging.EncoderParameter($EncoderParam, 100) 
    $JPGCodec = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() | Where-Object{$_.MimeType -eq 'image/jpeg'}

    $Bitmap.Save(($path+$outputFilename),$JPGCodec, $EncoderParamSet)

    $OldImage.Dispose()
    $NewImage.Dispose()
    $Bitmap.Dispose()
    python.exe uploadimage.py ($path+$outputFilename) $epapirMAC $epapirAPIP $epapirDither
}

 

Python-scriptet:

# Based on https://github.com/jjwbruijn/OpenEPaperLink/wiki/Image-upload
import requests
import sys

image_path = sys.argv[1]
mac = sys.argv[2]   # destination mac address
dither = sys.argv[4]   # set dither to 1 is you're sending photos etc
url = sys.argv[3]   # ip address of your access point

#url = "http://" + apip + "/imgupload"
payload = {"dither": dither, "mac": mac}  # Additional POST parameter
files = {"file": open(image_path, "rb")}  # File to be uploaded

# Send the HTTP POST request
response = requests.post(url, data=payload, files=files)

# Check the response status
if response.status_code == 200:
    print("Image uploaded successfully!")
else:
    print("Failed to upload the image.")

 

IMG20240214174626.jpg

14.02.2024.png

14.02.2024_1031254081.png

Endret av kristianml
  • Like 3
Skrevet (endret)

Jeg har nevnt det før at Home Assistant sitt markdown kort er superanvendelig. Det er noe jeg bruker mye. Denne bruker jeg til å vise hvordan jeg ligger an i forbindelse med effekttrinn på nettleie.

image.png.38a9873371a113063acf6bfdb5d9c593.png

Eller hvis grensen var lavere enn 10kWh

image.png.eb36c2d9d8ca7eb1537d7b5ce538c36a.png

 

{% set m = [states('sensor.average_of_3_highest_hourly_consumption_xxxxxxxx')|float(0),states('sensor.klepp_energi_maanedsmaks')|float(0)]|max|round(2) %}
{% set s = [states('sensor.month_peak_hour_consumption_xxxxx')|float(0),states('sensor.klepp_energi_maanedsmaks_time_1')|float(0),states('sensor.klepp_energi_maanedsmaks_time_2')|float(0),states('sensor.klepp_energi_maanedsmaks_time_3')|float(0)]|max|round(2) %}
{% set t = states('input_select.nettleie_pristrinn')|float(5) %}
Høyeste timesforbruk denne måned er **{{ s }} kWh**.

Snitt av de tre høyeste forbrukstimer er **{{ m }} kWh**.

{% if s < t - 0.1 and m < t - 0.1 %}
<ha-alert alert-type="success">Dere er innenfor grensen!</ha-alert>
{% elif s < t %}
<ha-alert alert-type="warning">Dere er nærme grensen!</ha-alert>
{% else %}
<ha-alert alert-type="error">Dere er over grensen!</ha-alert>
{% endif %}

 

Endret av stigvi
  • Like 2

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

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