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

SveinHa

Medlemmer
  • Innlegg

    1 505
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    72

Alt skrevet av SveinHa

  1. De store legionellasakene som havner i media gjelder jo kjøletårn i industri- eller næringsbygg der vann sirkulerer rundt og rundt på 20-30 grader i uker og måneder og så tar vinden med seg en sky med "konsentrert legionella"... På den andre siden: Hørte om en kar som hadde vært borte fra huset sitt i noen måneder og kontaktet Næringsmiddeltilsynet for å få tatt vannprøver med tanke på legionella. De ville ikke ta prøver men han fikk greit svar: "Der ER legionella i vannet, bare la det renne litt i alle kraner så er det greit".
  2. Jeg har hatt 1 (av 3) Ikea trafo som har ramlet ut og må trykke på paringsknappen for å få liv i den igjen. Oppdatert vha. Zigbee2mqtt for en måneds tid siden og har funket fint etterpå.
  3. God tilnærming. En Pi er et greit startpunkt så du kommer i gang. Da jeg gikk bort fra de dedikerte systemene som Fibaro HC2 og Zipatile ble det Pi med diverse systemer på før jeg havnet på NUC med ESXI som kjører flere LinuxMint maskiner for bl.a. NodeRed/Mosquitto/PiHole og en Win maskin for HS4, i tillegg har jeg 3 Pier med Zigbee2mqtt og 2x ZWave2mqtt. Ville nok siktet meg inn på både Zigbee og ZWave for utstyret rundtom i huset. Philips og Ikea har mye supert lysutstyr på Zigbee mens der er en del saker som bare finnes i ZWave. Når du har en Pi3b liggende så ville jeg brukt den men skal du kjøpe så hadde jeg ikke stusset på å kjøpe Pi4.
  4. Det er nok både tilført spenning og temperatur i varmekolben som gjør at effekten varierer litt. Min bereder er merket 2.9kW men trekker noen ganger litt over 3kW, helt normalt. Motstanden i varmekolben vil variere litt avhengig av temperaturen og ved en bestemt motstand vil du få en bestemt effekt kun ved en bestemt spenning. Effektformelen er P = U x I (Effekt(W) = Spenning(V) x Strøm(A)) og strømmen finner du med Ohms lov: I = U / R (Strøm(A) = Spenning(V) / Motstand(R))
  5. Da handler vi fra Kina til 1/10 av prisen og tar garantien på egen kappe.
  6. Der er jo også en god del andre muligheter om du går innom MQTT som f.eks. IoTMQTTPanel, MQTTDashboard eller en litt mer avanserte som jeg nettopp har begynt å leke med: Virtuino MQTT. Jeg kjører på HS4 og NodeRed og begge disse sender aktuelle data for UI til MQTT og da kan jeg bruke det UI jeg føler meg mest komfortabel med (og flere samtidig om det skulle passe meg).
  7. Det aller enkleste er å bare ha tanken på mellom kl 00 og 07, da treffer du etter alle solemerker den billigste strømmen i løpet av døgnet. Men så er det dette med størrelse på tank i forhold til varmtvannsforbruk da... For min del er det ingen problem med å ha tanken av hele dagen men min tank er ikke helt A4: 300 liter der nederste delen varmes opp med varmepumpe til ca 40 grader og øverste delen varmes med 2.9kW varmekolbe til 80 grader. På grunn av dette systemet vil alt dusjvannet først varmes med varmepumpe og deretter toppes med el.kolben så det skal jo gi litt billigere varmtvann enn en standardtank. Jeg styrer tanken med Aeotec Heavy Duty rele etter strømpris og timeforbruk så holder den innebygde termostaten greie på max temperatur. For å vite hvordan temperaturen ligger an i tanken ville jeg hatt 3 tempsensorer, en i topp, en 1/3 fra topp og en 1/3 fra bunn så bør du være godt dekket. Høyst sannsynlig er tanken isolert med glava og da borrer du hull i ytterkappen og stikker sensorene gjennom glavaen slik at de er i kontakt med tanken.
  8. Ikke akkurat i dag, tvert imot mange måneders suksessfull fartstid, men en Sunricher batteriløs zigbee lysbryter under bordkanten for lyset over bordet med dimmefunksjon. Super løsning 👍
  9. Ja, akkurat det kan være et problem. På noen enheter må en trykke så raskt det går an mens på andre må trykkene være "tydelige" men likevel innenfor 1.5 eller 3 sekund... og noen enheterhar helt andre måter... Når ting ikke virker: Les bruksanvisningen 👍
  10. Ja takk, begge deler. Det er litt forskjellig utvalg, noe finnes bare for ZWave og noe finnes bare for Zigbee (i alle fall her på berget). Finnes det utstyret jeg skal ha i både Zigbee og ZWave så kjøper jeg Zigbee fordi det funker mye bedre hos meg. Philips HUE er nevnt og de funker helt 100, Ikea Trådfri funker minst 99. En ting jeg har merket meg med ZWave dimmere fra både Qubino og Fibaro er at dimmingen skjer i tydelige trinn mens HUE dimmer silkemykt. Er i ferd med å flytte alt mitt utstyr over på Zigbee2MQTT og ZWaveJS2MQTT. Å gå via MQTT blir jo et ekstra ledd som kan gi noen utfordringer men det er et åpent grensesnitt som er greit å forholde seg til og gjør at flere systemer kan forholde seg til samme sensorer. Jeg kjører for tiden 3 forskjellige brukergrensesnitt der store deler av kommunikasjonen går via MQTT.
  11. Tatt skrittet og flytter det meste av ZWave over til ZWavejs2mqtt og samtidig følger mye av automasjonene med over fra HS til NodeRed. Prøver å være litt strukturert og få ting på plass helt ferdig rom for rom... Bygger samtidig opp et enkelt grensesnitt i IoTMQTTPanel slik at de mest vanlige betjeningene er lett tilgjengelige. Ikke så mye som betjenes manuelt, bare 3-4 lys, garasjeporter, espressomaskin og sette huset i Dag/Natt-mode. ...men plutselig kom kraftlaget og stengte strømmen... Nåja, det var annonsert men det var jo flere dager siden... så da blir det opptil 4 timer med annet arbeid.
  12. Det varierer nok litt men her har jeg et eksempel fra mitt hjem: Avstand mellom de grønne punktene er ca 27 meter. Nedre grønn er plassering av HUB. Mellom de grønne punktene er der 1 vanlig innevegg, 2 yttervegger og en gammel tømmervegg. Med ZWave måtte jeg ha et par strategisk plasserte noder (gule punkt) for å få brukende forbindelse til garasjen (øvre grønt punkt). Da jeg for en tid siden begynte med Zigbee fikk jeg glimrende forbindelse med KUN en HUE wallplug plassert i garasjen. Denne wallplugen har fremdeles direkte kontakt med huben selv om der nå er 15-20 tilleggsnoder i Zigbee nettverket: Konklusjonen på spørsmålet blir vel prøv-og-se men eksemplene du har fått gir vel også et greit bilde av hva du kan forvente.
  13. Finnes der en måte å finne ut hvor langt et SD kort er kommet i sin levetid eller vil bare wear levelling leve sitt eget liv helt til hele kortet er "brukt opp" og så havarere? Spørsmålet kommer jo selvsagt fra tanken om å kunne skifte kortet like FØR det havarerer...
  14. SveinHa

    HS4 vs HS3

    Den finnes i siste versjon, 4.2.7.0, men jeg har ikke testet den enda, bare sett at det er annonsert.
  15. Kjører kombo med UI fra både NodeRed og HomeSeer/HSTouch. Foreløpig ser jeg ikke helt at det ene kan erstatte det andre men i NodeRed har jeg i alle fall en mengde muligheter jeg ikke finner i HSTouch (samtidig som HSTouch gir meg en del friheter jeg ikke har i NR):
  16. Jeg ser at du har adressen til serveren der hvor der burde vært et litt tilfeldig navn, jeg ser jo ikke hva som ligger bak men min server ser slik ut: Hvis du har "localhost:1883" bare der jeg ser det så virker nok ikke stort.
  17. Jeg regner med de meldingene kommer i topic "zigbee2mqtt/BJ_Kontor". Kommer der noe i "zigbee2mqtt/BJ_Kontor/set" når du trykker på knappen på inject noden? Serveren så litt merkelig ut eller har du bare gitt den samme navn som adressen til serveren?
  18. Kommer der noe til MQTT broker i det hele tatt? MQTT Explorer er super til å se hva som skjer...
  19. Hele greiene ser slik ut: Øverst lagres timeverdier i SQL og lengre nede leses SQL og data presenteres i både chart og table. [{"id":"43c98426301432b6","type":"tibber-data","z":"d49bfe3335c3f7c9","name":"TodaysEnergyPrice","active":true,"apiEndpointRef":"3235237809bb894f","queryName":"getCurrentEnergyPrice","homeId":"4ac606d5-70bb-4b43-9cf8-6f5f867c00a8","energyResolution":"DAILY","lastCount":10,"x":450,"y":1260,"wires":[["06cc550f61d82e1c"]]},{"id":"0b858dc8e357231d","type":"change","z":"d49bfe3335c3f7c9","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"kWh_prev_h","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":1100,"wires":[["5c11f9028d78108f"]],"info":"{\"a\":$timestamp,\"b\":$flow.kWh_prev_h}"},{"id":"6736cd76640d17bd","type":"cronplus","z":"d49bfe3335c3f7c9","name":"Hourly","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"schedule1","topic":"schedule1","payloadType":"date","payload":"","expressionType":"cron","expression":"0 0 * * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":50,"y":1100,"wires":[["533368a5de56eede"]]},{"id":"533368a5de56eede","type":"delay","z":"d49bfe3335c3f7c9","name":"","pauseType":"delay","timeout":"3","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":260,"y":1080,"wires":[["0b858dc8e357231d","6b8d58f5ed2d5568"]]},{"id":"ad8fc9fae833b54e","type":"Stackhero-MySQL","z":"d49bfe3335c3f7c9","server":"c919f77e07994edc","name":"","x":980,"y":1100,"wires":[[]]},{"id":"ec65187082b5f759","type":"function","z":"d49bfe3335c3f7c9","name":"Generate SQL","func":"var kWh_T =flow.get(\"kWh_accT\")|| 0;\nvar MP =flow.get(\"MaxPower\")|| 0;\nvar CP =flow.get(\"CurrentPrice\")|| 0;\nvar PL =flow.get(\"PriceLevel\")|| \"-\";\nvar SP =flow.get(\"PID_SP\")|| 0;\nvar verdi = msg.payload.toFixed(4);\nvar dato = Date.now();\n\nmsg.payload={}\nmsg.payload.dat=dato;\nmsg.payload.verd=verdi;\nmsg.payload.mp=MP;\nmsg.payload.cp=CP;\nmsg.payload.pl=PL;\nmsg.payload.sp=SP;\nmsg.payload.kwht=kWh_T;\n\n\n\nmsg.topic = \"INSERT INTO Energi (kWh_hour, MaxPower, CurrentPrice, kWh_Tibber, PriceLevel, PID_SP) \";\nmsg.topic += \"VALUES ( :verd, :mp, :cp, :kwht, :pl, :sp );\"\n//msg.payload = [dato, verdi];\n//msg.topic += ', ' + verdi\n//msg.topic += ')'\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":1100,"wires":[["ad8fc9fae833b54e"]]},{"id":"5c11f9028d78108f","type":"json","z":"d49bfe3335c3f7c9","name":"","property":"payload","action":"obj","pretty":false,"x":610,"y":1100,"wires":[["ec65187082b5f759"]]},{"id":"1c92d25c775f08c8","type":"comment","z":"d49bfe3335c3f7c9","name":"kWh timeverdi til SQL og .log","info":"","x":160,"y":1040,"wires":[]},{"id":"49ad13fd1b34421d","type":"ui_table","z":"d49bfe3335c3f7c9","group":"188f564c824c87cd","name":"","order":3,"width":"10","height":"12","columns":[],"outputs":0,"cts":false,"x":970,"y":1480,"wires":[]},{"id":"858128e9e731109a","type":"function","z":"d49bfe3335c3f7c9","name":"kWh i dag","func":"var d = new Date();\nd.setDate(d.getDate() - 1);\nvar pd = new Date();\npd.setDate(pd.getDate() - 2);\n\nlet year = d.getFullYear();\nlet month = d.getMonth()+1;\nlet day = d.getDate()+1;\n\nlet pyear = pd.getFullYear();\nlet pmonth = pd.getMonth()+1;\nlet pday = pd.getDate()+1;\n\nlet dbts = (year*10000000000)+(month*100000000)+(day*1000000);\nlet pdbts = (pyear*10000000000)+(pmonth*100000000)+(pday*1000000);\n\nmsg.payload={}\n\n//msg.topic = \"SELECT MID(Timestamp,9,4) AS 'Tid i dag', kWh_hour AS kWh, MaxPower/1000 AS 'Max kW', CurrentPrice AS Pris FROM Energi WHERE Timestamp >= \" + dbts;\nmsg.topic = \"SELECT MID(Timestamp,9,4) AS 'I dag', PID_SP AS 'SP', ROUND(kWh_Tibber,2) AS kWh, ROUND(CurrentPrice,2) AS Pris, ROUND((CurrentPrice*kWh_Tibber), 2) AS 'Kr/h', PriceLevel AS 'Lvl' FROM Energi \";\nmsg.topic += \"WHERE Timestamp >= \" + dbts;\nmsg.topic += \" ORDER BY DatoTid ASC;\"\n//msg.topic += ', ' + verdi\n//msg.topic += ')'\nreturn msg;\n\n\n/*\nmsg.topic = \"SELECT DatoTid, kWh_hour FROM Energi WHERE Timestamp >= \" + dbts;\nmsg.topic += \" ORDER BY DatoTid ASC;\"\nmsg.payload={}\nmsg.payload.userToChange=42;\nmsg.payload.newUsername=\"example-user\";\nmsg.topic=\"INSERT INTO users (`userid`, `username`) VALUES (:userToChange, :newUsername) ON DUPLICATE KEY UPDATE `username`=:newUsername;\"\nreturn msg;\n*/","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":1480,"wires":[["39201e04cc076738"]]},{"id":"39201e04cc076738","type":"Stackhero-MySQL","z":"d49bfe3335c3f7c9","server":"c919f77e07994edc","name":"","x":800,"y":1480,"wires":[["49ad13fd1b34421d"]]},{"id":"c8ac7ae53d71c179","type":"inject","z":"d49bfe3335c3f7c9","name":"","props":[{"p":"payload"}],"repeat":"300","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":110,"y":1600,"wires":[["858128e9e731109a","fe19627f283b8bba","4d769e24aced283a","5573440bcd0ffaf6","debe875237227809","abaab949ce52216b","86ab4360.50c6c","43c98426301432b6","078aa7c160ce1cd4"]]},{"id":"25aca45ef9a7d242","type":"ui_table","z":"d49bfe3335c3f7c9","group":"188f564c824c87cd","name":"","order":4,"width":"10","height":"12","columns":[],"outputs":0,"cts":false,"x":970,"y":1520,"wires":[]},{"id":"fe19627f283b8bba","type":"function","z":"d49bfe3335c3f7c9","name":"kWh i går","func":"\nvar d = new Date();\nd.setDate(d.getDate() - 1);\nvar pd = new Date();\npd.setDate(pd.getDate() - 2);\n\nlet year = d.getFullYear();\nlet month = d.getMonth()+1;\nlet day = d.getDate()+1;\n\nlet pyear = pd.getFullYear();\nlet pmonth = pd.getMonth()+1;\nlet pday = pd.getDate()+1;\n\nlet dbts = (year*10000000000)+(month*100000000)+(day*1000000);\nlet pdbts = (pyear*10000000000)+(pmonth*100000000)+(pday*1000000);\n\nmsg.payload={}\n\n\n//msg.topic = \"SELECT MID(Timestamp,9,4) AS 'Tid i går', kWh_hour AS kWh, MaxPower/1000 AS 'Max kW', CurrentPrice AS Pris FROM Energi \";\nmsg.topic = \"SELECT MID(Timestamp,9,4) AS 'I går', PID_SP AS 'SP', ROUND(kWh_Tibber,2) AS kWh, ROUND(CurrentPrice,2) AS Pris, ROUND((CurrentPrice*kWh_Tibber), 2) AS 'Kr/h', PriceLevel AS 'Lvl' FROM Energi \";\nmsg.topic += \"WHERE Timestamp >= \" + pdbts + \" AND Timestamp < \" + dbts;\nmsg.topic += \" ORDER BY DatoTid ASC;\"\n//msg.topic += ', ' + verdi\n//msg.topic += ')'\nreturn msg;\n\n\n/*\nmsg.payload={}\nmsg.payload.userToChange=42;\nmsg.payload.newUsername=\"example-user\";\nmsg.topic=\"INSERT INTO users (`userid`, `username`) VALUES (:userToChange, :newUsername) ON DUPLICATE KEY UPDATE `username`=:newUsername;\"\nreturn msg;\n\nvar time = new Date();\nvar displaytime = time.toLocaleTimeString();\nvar hour = time.getHours();\n\n*/","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":1520,"wires":[["94fc9523796f3ac4"]]},{"id":"94fc9523796f3ac4","type":"Stackhero-MySQL","z":"d49bfe3335c3f7c9","server":"c919f77e07994edc","name":"","x":800,"y":1520,"wires":[["25aca45ef9a7d242"]]},{"id":"d205c5ce.1feca8","type":"ui_chart","z":"d49bfe3335c3f7c9","name":"","group":"188f564c824c87cd","order":1,"width":"22","height":"6","label":"kWh/h + pris (31d)","chartType":"line","legend":"true","xformat":"HH:mm","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"3","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#3465a4","#cc0000","#cc0000","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":930,"y":1440,"wires":[[]]},{"id":"86ab4360.50c6c","type":"function","z":"d49bfe3335c3f7c9","name":"Siste 31d","func":"var timeE = msg.payload;\n//Restrict the query to pull the last 24hrs\n//of data instead of the whole db\nvar d=new Date();\nd.setDate(d.getDate() - 31);\nvar aar=d.getFullYear();\nvar mnd=d.getMonth()+1; //Month er 0-11\nvar dag=d.getDate();\nvar tim=d.getHours();\n\nts = (aar*10000000000)+(mnd*100000000)+(dag*1000000)+(tim*10000);\n//msg.payload = (timeE - (1000*60*60*24));\nmsg.payload = ts;\n node.status({text:msg.payload});\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":340,"y":1420,"wires":[["308dd6b1.2a193a"]]},{"id":"308dd6b1.2a193a","type":"template","z":"d49bfe3335c3f7c9","name":"Format query 1","field":"topic","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"SELECT DatoTid, kWh_hour, CurrentPrice FROM Energi WHERE Timestamp > {{payload}}","output":"str","x":500,"y":1440,"wires":[["736965c2c176b373"]]},{"id":"a03b0066.3ff5a","type":"change","z":"d49bfe3335c3f7c9","name":"Format data","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t $series := [\t { \"field\": \"kWh_hour\", \"label\": \"kWh\" },\t { \"field\": \"CurrentPrice\", \"label\": \"Pris\" }\t ];\t $xaxis := \"DatoTid\";\t [\t {\t \"series\": $series.label,\t \"data\": $series.[\t (\t $yaxis := $.field;\t $$.payload.{\t \"x\": $lookup($, $xaxis),\t \"y\": $lookup($, $yaxis)\t }\t )\t ]\t }\t ]\t)","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":790,"y":1400,"wires":[["d205c5ce.1feca8"]]},{"id":"3016d0bf3923098b","type":"Stackhero-MySQL","z":"d49bfe3335c3f7c9","server":"c919f77e07994edc","name":"","x":700,"y":1440,"wires":[["a03b0066.3ff5a"]]},{"id":"736965c2c176b373","type":"function","z":"d49bfe3335c3f7c9","name":"Add dummy payload","func":"msg.payload = {\"Whatever\":\"0\"};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":580,"y":1400,"wires":[["3016d0bf3923098b"]]},{"id":"6b8d58f5ed2d5568","type":"delay","z":"d49bfe3335c3f7c9","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":120,"y":1520,"wires":[["858128e9e731109a","fe19627f283b8bba","86ab4360.50c6c","4d769e24aced283a","43c98426301432b6","5573440bcd0ffaf6","debe875237227809","abaab949ce52216b","078aa7c160ce1cd4","0aca93d88df1f214"]]},{"id":"06cc550f61d82e1c","type":"show-value","z":"d49bfe3335c3f7c9","name":"","path":"","x":630,"y":1260,"wires":[["aafe6aae4f3432b7","fb78792335b9cd22"]]},{"id":"aafe6aae4f3432b7","type":"function","z":"d49bfe3335c3f7c9","name":"Lagre CurrentPrice i flow","func":"var cp = msg.payload.total;\n//cp=109.2;\nflow.set(\"CurrentPrice\",cp);\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":870,"y":1260,"wires":[[]]},{"id":"ae1e3d2e03e57cb0","type":"ui_table","z":"d49bfe3335c3f7c9","group":"188f564c824c87cd","name":"","order":6,"width":"10","height":"12","columns":[],"outputs":0,"cts":false,"x":970,"y":1560,"wires":[]},{"id":"4d769e24aced283a","type":"function","z":"d49bfe3335c3f7c9","name":"kWh i forgårs","func":"\nvar d = new Date();\nd.setDate(d.getDate() - 2);\nvar pd = new Date();\npd.setDate(pd.getDate() - 3);\n\nlet year = d.getFullYear();\nlet month = d.getMonth()+1;\nlet day = d.getDate()+1;\n\nlet pyear = pd.getFullYear();\nlet pmonth = pd.getMonth()+1;\nlet pday = pd.getDate()+1;\n\nlet dbts = (year*10000000000)+(month*100000000)+(day*1000000);\nlet pdbts = (pyear*10000000000)+(pmonth*100000000)+(pday*1000000);\n\n\nmsg.payload={}\n\n\n//msg.topic = \"SELECT MID(Timestamp,9,4) AS 'Tid i forgårs', kWh_hour AS kWh, MaxPower/1000 AS 'Max kW', CurrentPrice AS Pris FROM Energi \";\nmsg.topic = \"SELECT MID(Timestamp,9,4) AS 'Forgårs', PID_SP AS 'SP', ROUND(kWh_Tibber,2) AS kWh, ROUND(CurrentPrice,2) AS Pris, ROUND((CurrentPrice*kWh_Tibber), 2) AS 'Kr/h', PriceLevel AS 'Lvl' FROM Energi \";\nmsg.topic += \"WHERE Timestamp >= \" + pdbts + \" AND Timestamp < \" + dbts;\nmsg.topic += \" ORDER BY DatoTid ASC;\"\n//msg.topic += ', ' + verdi\n//msg.topic += ')'\nreturn msg;\n\n\n/*\nmsg.payload={}\nmsg.payload.userToChange=42;\nmsg.payload.newUsername=\"example-user\";\nmsg.topic=\"INSERT INTO users (`userid`, `username`) VALUES (:userToChange, :newUsername) ON DUPLICATE KEY UPDATE `username`=:newUsername;\"\nreturn msg;\n\nvar time = new Date();\nvar displaytime = time.toLocaleTimeString();\nvar hour = time.getHours();\n\n*/","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":1560,"wires":[["39dd34e67f532e2d"]]},{"id":"39dd34e67f532e2d","type":"Stackhero-MySQL","z":"d49bfe3335c3f7c9","server":"c919f77e07994edc","name":"","x":800,"y":1560,"wires":[["ae1e3d2e03e57cb0"]]},{"id":"35e1c998ea014c70","type":"ui_table","z":"d49bfe3335c3f7c9","group":"188f564c824c87cd","name":"Kost/mnd","order":2,"width":"10","height":"3","columns":[],"outputs":0,"cts":false,"x":960,"y":1680,"wires":[]},{"id":"12e2682ce6d2f9c9","type":"function","z":"d49bfe3335c3f7c9","name":"kWh/kost pr mnd","func":"var d = new Date();\nlet hours = d.getHours();\nlet minutes = d.getMinutes();\nlet seconds = d.getSeconds();\nlet year = d.getFullYear();\nlet month = d.getMonth()+1;\nlet day = d.getDate();\nlet dbts = (year*10000000000)+(month*100000000)+(day*1000000);//+(hours*10000);\nlet dbtsy = dbts - 1000000;\nlet dbtsfy = dbtsy - 1000000;\n\nmsg.payload={}\n\n\n//msg.topic = \"SELECT MID(Timestamp,9,4) AS 'Tid i forgårs', kWh_hour AS kWh, MaxPower/1000 AS 'Max kW', CurrentPrice AS Pris FROM Energi \";\nmsg.topic = \"SELECT (LEFT(Timestamp,6)/100) AS 'År/Mnd', ROUND(SUM(kWh_Tibber),2) AS kWh, ROUND(SUM(kWh_Tibber * Currentprice),2) AS Kost \";\nmsg.topic += \"FROM Energi \";\n//msg.topic += \"WHERE Timestamp >= \" + dbtsfy + \" AND Timestamp < \" + dbtsy;\nmsg.topic += \"GROUP BY MID(Timestamp,5,2)\";\nmsg.topic += \"ORDER BY Timestamp DESC\";\n//msg.topic += ')'\nreturn msg;\n\n/*\nmsg.payload={}\nmsg.payload.userToChange=42;\nmsg.payload.newUsername=\"example-user\";\nmsg.topic=\"INSERT INTO users (`userid`, `username`) VALUES (:userToChange, :newUsername) ON DUPLICATE KEY UPDATE `username`=:newUsername;\"\nreturn msg;\n\nvar time = new Date();\nvar displaytime = time.toLocaleTimeString();\nvar hour = time.getHours();\n\n*/","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":570,"y":1680,"wires":[["f842943e2e9e0ff8"]]},{"id":"f842943e2e9e0ff8","type":"Stackhero-MySQL","z":"d49bfe3335c3f7c9","server":"c919f77e07994edc","name":"","x":800,"y":1680,"wires":[["35e1c998ea014c70"]]},{"id":"5573440bcd0ffaf6","type":"delay","z":"d49bfe3335c3f7c9","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":340,"y":1680,"wires":[["12e2682ce6d2f9c9","ac1bed130080554f"]]},{"id":"633df0a5819fbe5b","type":"comment","z":"d49bfe3335c3f7c9","name":"Hent energidata fra SQL til Dashboard","info":"","x":170,"y":1240,"wires":[]},{"id":"65e7d0fdb19c8dea","type":"ui_table","z":"d49bfe3335c3f7c9","group":"188f564c824c87cd","name":"","order":7,"width":"10","height":"12","columns":[],"outputs":0,"cts":false,"x":970,"y":1600,"wires":[]},{"id":"debe875237227809","type":"function","z":"d49bfe3335c3f7c9","name":"kWh i -3","func":"var d = new Date();\nd.setDate(d.getDate() - 3);\nvar pd = new Date();\npd.setDate(pd.getDate() - 4);\n\nlet year = d.getFullYear();\nlet month = d.getMonth()+1;\nlet day = d.getDate()+1;\n\nlet pyear = pd.getFullYear();\nlet pmonth = pd.getMonth()+1;\nlet pday = pd.getDate()+1;\n\nlet dbts = (year*10000000000)+(month*100000000)+(day*1000000);\nlet pdbts = (pyear*10000000000)+(pmonth*100000000)+(pday*1000000);\n\nmsg.payload={}\n\n\n//msg.topic = \"SELECT MID(Timestamp,9,4) AS 'Tid i forgårs', kWh_hour AS kWh, MaxPower/1000 AS 'Max kW', CurrentPrice AS Pris FROM Energi \";\nmsg.topic = \"SELECT MID(Timestamp,9,4) AS 'D-3', PID_SP AS 'SP', ROUND(kWh_Tibber,2) AS kWh, ROUND(CurrentPrice,2) AS Pris, ROUND((CurrentPrice*kWh_Tibber), 2) AS 'Kr/h', PriceLevel AS 'Lvl' FROM Energi \";\nmsg.topic += \"WHERE Timestamp >= \" + pdbts + \" AND Timestamp < \" + dbts;\nmsg.topic += \" ORDER BY DatoTid ASC;\"\n//msg.topic += ', ' + verdi\n//msg.topic += ')'\nreturn msg;\n\n\n/*\nmsg.payload={}\nmsg.payload.userToChange=42;\nmsg.payload.newUsername=\"example-user\";\nmsg.topic=\"INSERT INTO users (`userid`, `username`) VALUES (:userToChange, :newUsername) ON DUPLICATE KEY UPDATE `username`=:newUsername;\"\nreturn msg;\n\nvar time = new Date();\nvar displaytime = time.toLocaleTimeString();\nvar hour = time.getHours();\n\n*/","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":1600,"wires":[["37297c6dd1887fc7"]]},{"id":"37297c6dd1887fc7","type":"Stackhero-MySQL","z":"d49bfe3335c3f7c9","server":"c919f77e07994edc","name":"","x":800,"y":1600,"wires":[["65e7d0fdb19c8dea"]]},{"id":"8974b41bb8d851a8","type":"ui_table","z":"d49bfe3335c3f7c9","group":"188f564c824c87cd","name":"","order":8,"width":"10","height":"12","columns":[],"outputs":0,"cts":false,"x":970,"y":1640,"wires":[]},{"id":"abaab949ce52216b","type":"function","z":"d49bfe3335c3f7c9","name":"kWh i -4","func":"var d = new Date();\nd.setDate(d.getDate() - 4);\nvar pd = new Date();\npd.setDate(pd.getDate() - 5);\n\nlet year = d.getFullYear();\nlet month = d.getMonth()+1;\nlet day = d.getDate()+1;\n\nlet pyear = pd.getFullYear();\nlet pmonth = pd.getMonth()+1;\nlet pday = pd.getDate()+1;\n\nlet dbts = (year*10000000000)+(month*100000000)+(day*1000000);\nlet pdbts = (pyear*10000000000)+(pmonth*100000000)+(pday*1000000);\n\nmsg.payload={}\n\n\n//msg.topic = \"SELECT MID(Timestamp,9,4) AS 'Tid i forgårs', kWh_hour AS kWh, MaxPower/1000 AS 'Max kW', CurrentPrice AS Pris FROM Energi \";\nmsg.topic = \"SELECT MID(Timestamp,9,4) AS 'D-4', PID_SP AS 'SP', ROUND(kWh_Tibber,2) AS kWh, ROUND(CurrentPrice,2) AS Pris, ROUND((CurrentPrice*kWh_Tibber), 2) AS 'Kr/h', PriceLevel AS 'Lvl' FROM Energi \";\nmsg.topic += \"WHERE Timestamp >= \" + pdbts + \" AND Timestamp < \" + dbts;\nmsg.topic += \" ORDER BY DatoTid ASC;\"\n//msg.topic += ', ' + verdi\n//msg.topic += ')'\nreturn msg;\n\n\n/*\nmsg.payload={}\nmsg.payload.userToChange=42;\nmsg.payload.newUsername=\"example-user\";\nmsg.topic=\"INSERT INTO users (`userid`, `username`) VALUES (:userToChange, :newUsername) ON DUPLICATE KEY UPDATE `username`=:newUsername;\"\nreturn msg;\n\nvar time = new Date();\nvar displaytime = time.toLocaleTimeString();\nvar hour = time.getHours();\n\n*/","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":1640,"wires":[["1e38006ef2584640"]]},{"id":"1e38006ef2584640","type":"Stackhero-MySQL","z":"d49bfe3335c3f7c9","server":"c919f77e07994edc","name":"","x":800,"y":1640,"wires":[["8974b41bb8d851a8"]]},{"id":"fb78792335b9cd22","type":"function","z":"d49bfe3335c3f7c9","name":"Lagre PriceLevel i flow","func":"var cp = msg.payload.level;\n//cp=109.2;\nflow.set(\"PriceLevel\",cp);\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":860,"y":1220,"wires":[[]]},{"id":"d0a1b1516d131821","type":"inject","z":"d49bfe3335c3f7c9","name":"","props":[{"p":"payload"}],"repeat":"300","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":110,"y":1720,"wires":[["5573440bcd0ffaf6"]]},{"id":"12c5c8eb488c16af","type":"ui_table","z":"d49bfe3335c3f7c9","group":"188f564c824c87cd","name":"Spart/dag","order":5,"width":"10","height":"9","columns":[],"outputs":0,"cts":false,"x":960,"y":1720,"wires":[]},{"id":"3b3b4a0a5fc87059","type":"function","z":"d49bfe3335c3f7c9","name":"Spart/dag","func":"var d = new Date();\nlet hours = d.getHours();\nlet minutes = d.getMinutes();\nlet seconds = d.getSeconds();\nlet year = d.getFullYear();\nlet month = d.getMonth()+1;\nlet day = d.getDate();\nlet dbts = (year*10000000000)+(month*100000000)+(day*1000000);//+(hours*10000);\nlet dbtsy = dbts - 1000000;\nlet dbtsfy = dbtsy - 1000000;\n\nmsg.payload={}\n\n\n//msg.topic = \"SELECT MID(Timestamp,9,4) AS 'Tid i forgårs', kWh_hour AS kWh, MaxPower/1000 AS 'Max kW', CurrentPrice AS Pris FROM Energi \";\n//msg.topic = \"SELECT LEFT(Timestamp,8) AS 'Dato', (SUM(CurrentPrice)/COUNT(*) * SUM(kWh_Tibber)/COUNT(*)) * 24 AS 'Snittpris', (SUM(CurrentPrice * kWh_Tibber)/COUNT(*)) * 24 AS 'ReellPri'\";\nmsg.topic = \"SELECT LEFT(Timestamp,8) AS 'Dato',\"\nmsg.topic += \"CAST(SUM(kWh_Tibber) as decimal(6,1)) AS 'kWh',\";\nmsg.topic += \"CAST(SUM(CurrentPrice)/COUNT(*) * SUM(kWh_Tibber)/COUNT(*) * 24 as decimal(10,2)) AS 'Snittpris',\";\nmsg.topic += \"CAST(SUM(CurrentPrice * kWh_Tibber)/COUNT(*) * 24 as decimal(10,2)) AS 'ReellPris',\";\nmsg.topic += \"CAST((SUM(CurrentPrice)/COUNT(*) * SUM(kWh_Tibber)/COUNT(*) * 24) - (SUM(CurrentPrice * kWh_Tibber)/COUNT(*) * 24) as decimal(10,2)) AS 'Spart'\"\n\nmsg.topic += \"FROM Energi \";\n//msg.topic += \"WHERE Timestamp >= \" + dbtsfy + \" AND Timestamp < \" + dbtsy;\nmsg.topic += \"GROUP BY LEFT(Timestamp,8)\";\nmsg.topic += \"ORDER BY Timestamp DESC\";\n//msg.topic += ')'\nreturn msg;\n\n/*\nmsg.payload={}\nmsg.payload.userToChange=42;\nmsg.payload.newUsername=\"example-user\";\nmsg.topic=\"INSERT INTO users (`userid`, `username`) VALUES (:userToChange, :newUsername) ON DUPLICATE KEY UPDATE `username`=:newUsername;\"\nreturn msg;\n\nvar time = new Date();\nvar displaytime = time.toLocaleTimeString();\nvar hour = time.getHours();\n\n*/","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":1720,"wires":[["bfad0741bbc43305"]]},{"id":"bfad0741bbc43305","type":"Stackhero-MySQL","z":"d49bfe3335c3f7c9","server":"c919f77e07994edc","name":"","x":800,"y":1720,"wires":[["12c5c8eb488c16af"]]},{"id":"ac1bed130080554f","type":"delay","z":"d49bfe3335c3f7c9","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":400,"y":1720,"wires":[["3b3b4a0a5fc87059"]]},{"id":"7b554e4669b367f9","type":"ui_chart","z":"d49bfe3335c3f7c9","name":"","group":"188f564c824c87cd","order":1,"width":"8","height":"6","label":"kWh/h + pris (2d)","chartType":"line","legend":"true","xformat":"HH:mm","interpolate":"linear","nodata":"","dot":false,"ymin":"0","ymax":"","removeOlder":"3","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#3465a4","#cc0000","#73d216","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":930,"y":1360,"wires":[[]]},{"id":"078aa7c160ce1cd4","type":"function","z":"d49bfe3335c3f7c9","name":"Siste 2d","func":"var timeE = msg.payload;\n//Restrict the query to pull the last 24hrs\n//of data instead of the whole db\nvar d=new Date();\nd.setDate(d.getDate() - 2);\nvar aar=d.getFullYear();\nvar mnd=d.getMonth()+1; //Month er 0-11\nvar dag=d.getDate();\nvar tim=d.getHours();\n\nts = (aar*10000000000)+(mnd*100000000)+(dag*1000000)+(tim*10000);\n//msg.payload = (timeE - (1000*60*60*24));\nmsg.payload = ts;\n node.status({text:msg.payload});\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":340,"y":1340,"wires":[["38c38a3dabaa53dc"]]},{"id":"38c38a3dabaa53dc","type":"template","z":"d49bfe3335c3f7c9","name":"Format query 1","field":"topic","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"SELECT DatoTid, kWh_hour, CurrentPrice, PID_SP FROM Energi WHERE Timestamp > {{payload}}","output":"str","x":500,"y":1360,"wires":[["0a3c6d550a427301"]]},{"id":"b6b43742bb23be7f","type":"change","z":"d49bfe3335c3f7c9","name":"Format data","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t $series := [\t { \"field\": \"kWh_hour\", \"label\": \"kWh\" },\t { \"field\": \"CurrentPrice\", \"label\": \"Pris\" },\t { \"field\": \"PID_SP\", \"label\": \"SP\" }\t ];\t $xaxis := \"DatoTid\";\t [\t {\t \"series\": $series.label,\t \"data\": $series.[\t (\t $yaxis := $.field;\t $$.payload.{\t \"x\": $lookup($, $xaxis),\t \"y\": $lookup($, $yaxis)\t }\t )\t ]\t }\t ]\t)","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":790,"y":1320,"wires":[["7b554e4669b367f9"]]},{"id":"324130bee0fc15b3","type":"Stackhero-MySQL","z":"d49bfe3335c3f7c9","server":"c919f77e07994edc","name":"","x":700,"y":1360,"wires":[["b6b43742bb23be7f"]]},{"id":"0a3c6d550a427301","type":"function","z":"d49bfe3335c3f7c9","name":"Add dummy payload","func":"msg.payload = {\"Whatever\":\"0\"};\nreturn msg;\n// Fjernet fra Format data\n// { \"field\": \"DateTime\", \"label\": \"Tid\" },\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":580,"y":1320,"wires":[["324130bee0fc15b3"]]},{"id":"0aca93d88df1f214","type":"hs-device","z":"d49bfe3335c3f7c9","name":"RedusertEffekt","device":"1762","server":"8cea2f7d775df12f","feature":"1763","reportonstartup":false,"x":440,"y":1060,"wires":[["7c1234ae0ca72d65","a2c5e93546b26393"]]},{"id":"7c1234ae0ca72d65","type":"change","z":"d49bfe3335c3f7c9","name":"Set global.reduserteffekt","rules":[{"t":"set","p":"reduserteffekt","pt":"global","to":"payload.status","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":750,"y":1020,"wires":[[]]},{"id":"337d0b425331896c","type":"comment","z":"d49bfe3335c3f7c9","name":"Set global.reduserteffekt","info":"","x":470,"y":1020,"wires":[]},{"id":"a2c5e93546b26393","type":"change","z":"d49bfe3335c3f7c9","name":"Set global.reduserteffekt_value","rules":[{"t":"set","p":"reduserteffekt_value","pt":"global","to":"payload.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":770,"y":1060,"wires":[[]]},{"id":"3235237809bb894f","type":"tibber-api-endpoint","feedUrl":"wss://api.tibber.com/v1-beta/gql/subscriptions","queryUrl":"https://api.tibber.com/v1-beta/gql","name":"Dale"},{"id":"c919f77e07994edc","type":"Stackhero-MySQL-Server","name":"","host":"172.16.0.98","port":"3306","tls":false,"database":"NodeRedEnergi"},{"id":"188f564c824c87cd","type":"ui_group","name":"Chart","tab":"bbe9ae4be8e5f235","order":4,"disp":false,"width":"30","collapse":false,"className":""},{"id":"8cea2f7d775df12f","type":"hs-server","name":"HS4","host":"172.16.0.102","port":"80"},{"id":"bbe9ae4be8e5f235","type":"ui_tab","name":"Energi","icon":"receipt","order":2,"disabled":false,"hidden":false}]
  20. Enkleste måten: Om dimmeren støtter transtion kan du sende f.eks denne: {"brightness":120,"transition":60}
  21. SveinHa

    YR plugin

    Jeg har hatt flaks om MyWeather har virket sammenhengende i en uke. Normalt når den henger er det bare å stoppe/starte plugin så våkne den igjen men ikke de siste dagene. I dag hadde den startet av seg selv og var overraskende nok oppdatert...
  22. Mange SSR kobler bare inn/ut i nullgjennomgang, skal en ta deler av sinusen er det vanligere med transistor/thyristor/triac i stedet for SSR. Litt av problemet med disse er at de lager mye radiostøy når de kobler med strøm i kretsen...
  23. Ja, og det er jo poenget. Akkurat samme med SSR bare at tidsperiodene kan være mye kortere, helt nede i millisekund.
  24. Min bereder er kun ett trinn på 3kW men jeg har en viss modulering via Aeotec Heavy Duty relay som for tiden gir 50% effekt ved å slå av eller på hvert minutt. Ikke helt ideelt men i alle fall bedre enn kun full effekt.
  25. Jepp: https://smartlight.me/smart-home-devices/zigbee-devices/zigbee-coordinator-v4-cc2652p
×
×
  • 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.