Keresés

Új hozzászólás Aktív témák

  • AcCEsS

    senior tag

    Tegnap nekiálltam a Domoticz-ot és az InfluxDB+Grafana párost összehozni. A dolgok nagy része működik is, de azért van néhány apró gondom:

    A Domoticz-ban, ahol az InfluxDB felé történő küldést lehet beállítani, eszközönként meghatározható, hogy a céltípus "Közvetlen" vagy "Érték változása" legyen. Ezt melyikre kell állítani? Nem igazán tudom értelmezni, hogy melyik mi!?

    A Sonoff POW kapcsolók percenként küldik MQTT-n a Domoticznak a Volt / Amper / Watt infókat, ezek ugyanúgy percenként kerülnek át az InfluxDB-be. Ez jó pár plusz kapcsolót figyelembe véve, és jelenleg 8 darab hőmérő hőfok/páratartalom adataival kiegészülve, elég sok rekordot generálhat bele az adatbázisba. Idővel nem lesz túl nagy az InfluxDB adatbázis? Ti milyen időközönként küldtök adatokat?

    Ja, és a Sonoff POW amper adatát nem tudja átküldeni a Domoticz. Amikor hozzáadom az eszközt, csak egy "Current" nevű érték választható ki a küldéshez, viszont ekkor a log-ban a "Error: Could not determine data push value" hibaüzi jelenik meg. Ez mi lehet? Van rá valami megoldás?

    A segítséget előre is köszi! :K

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz layerke #2779 üzenetére

    A közvetlen vagy értékváltozásos adatküldéssel kapcsolatban nekem is ez volt a feltételezésem, de jó volt egy megerősítés, köszönöm! Most átállítottam mindet az értékváltozásos módra, hagyom egy napig és így lesz összehasonlítási alapom, csakúgy mint az adatbázis méretnövekedésével kapcsolatban. Már csak a Sonoff témára keresgélek megoldásokat, de hátha valaki írni fog ötletet. Köszönöm a segítséget!

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz polyszi2013 #2830 üzenetére

    Nekem valahogy ez a SonOTA firmware hack egyszer sem sikerült. A folyamat egy ideig szépen haladt, de az utolsó lépés a FinalStage SSID megjelenése egyszer sem következett be. Három különböző Sonoff szállítmánnyal, Basic és POW modellekkel is próbáltam, de nem voltam vele szerencsés. Viszont a firmware verziót sosem figyeltem! :) A hagyományos USB/soros átalakítós módszernél az első két esetben még forrasztottam lelkesen, de már arra sem vesztegetek időt, simán bedugom a dupont kábel tüskés felét az alaplap megfelelő csatlakozási pontjaiba - így is mindig tökéletes volt a kontakt -, és mehet rá a firm... :K

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz AcCEsS #2837 üzenetére

    Az előbb rossz kábeltípust linkeltem, ez a jó...

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz layerke #2847 üzenetére

    Köszi az értesítést, le is frissítettem! A módosításokat majd részletesen átnézem, de végre a rendszernapló menüpont Napló lett Esemény helyett. :)

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    Redőnyvezérléssel kapcsolatban lenne kérdésem. Ablakcsere előtt állunk és - ha nem lesz túl nagy felár -, legalább a nappaliban lévő 2 ablak + 1 erkélyajtó működtetését/automatizálását szeretném megoldani pl. a Domoticz segítségével. (Még azt sem tudom, hogyan működik a "okos-vezérlés" nélküli verzió. Valami IR távirányítással vagy sima billenőkapcsolókat szerelnek fel?) Szóval, ha valakinél működik ilyen, hogyan oldotta meg a vezérlést? Milyen kritériumokra kell figyelnem a kiegészítők megrendelésénél? Miket kell tartalmaznia a redőnymozgató berendezésnek, hogy könnyen tudjam működtetni a Domoticz-ból? Egy Broadlink Mini jelenleg működik a rendszerben, egy Pro pedig úton van. Kérlek segítsetek, ma délután jönnek a "szakemberek" az egyeztetésre...

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz layerke #2865 üzenetére

    itanczos & layerke: Köszönöm az infókat. A túl nagy mértékű kábelezés már nem megoldható, legalábbis az emeletre vagy a tetőtérre összehozva, de helyben a fal külső részén lehet kábelcsatornázni vidáman, a kinézet nem lényeg, mert úgyis szigetelés fog rámenni. Mellékeltem egy képet a nyílászárókról. Tehát ha jól értem, mindhárom redőnytől mennie kell egy kábelnek valami kötésdobozba, amitől a belső helyiségbe felszerelt nyomógombokhoz futna be egy (vagy több) plusz kábel. A külső kötésdobozba pedig redőnyönként kell egy Fibaro vezérlőegység? Illetve a Fibaro vezérlőegységektől kell kábeles összeköttetés a Raspberry-s vezérlésig vagy ott már a Z-Wave játszik?

    Közben találtam infót, hogy a Z-Wave egy Aeotec Z-Stick-ről vezérelhető lenne...

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3002 üzenetére

    A hibaüzi mintha pont arra az XML fájlra reklamálna, amit máshonnan töltöttél le. Ahhoz, hogy a Domoticz Hardver oldalán kiválasztható legyen a Broadlink Pro (még ha utána nem is működik) semmi más nem kell, csak az általad linkelt útvonal ('/home/pi/domoticz/plugins/BroadlinkRM2/') könyvtára alá bemásolni a plugin.py fájlt. Ha jól tudom, még futtathatónak sem kell lennie, mert nem közvetlenül a shell hanem a python fogja kezelni.

    Egyébként tegnap jött meg nekem is a Broadlink Pro, és csak hogy a korábban feltett kérdésemre válaszoljak, hibátlanul kezeli az Aldi-s távirányítós konnektor-szettet.

    Sajnos gyelőre még csak telefonról tudom bizergálni, mert ha a Domoticzban felveszem az eszközt, a következő restartnál meghiúsul a Domoticz elindulása. A githubról letöltött legutolsó verziójú python-broadlink telepítője eleve rossz helyre másolja a lib-eket, mert a telepítés a /usr/local/lib/python3.5/dist-packages alá történik, és nem a /usr/lib/python3.5 alá, ahol a többi telepített lib van. Érdekesség, hogy van egy /usr/lib/python3/dist-packages könyvtár is egy halom lib-el, ami szerintem a pip install hozott létre. Szóval az első telepítés és Domoticz restart után a log-ban láttam, hogy a python nem tudta felhúzni a broadlink lib-et, mert nem találja. Ekkor vettem észre, a helytelen telepítési útvonalat, de amikor kézzel átmásolom az /usr/lib/python3.5 alá, a restart után nem tud elindulni a Domoticz. Tegnap este már nem volt több időm nyomozni, de remélem nem az új verziós Broadlink Pro firmware a probléma oka.

    Ti belefutottatok ilyen problémába? Mi a franc lehet ez?

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    (#3002) lplugo: Ja, és a Broadlink Pro csak akkor jelent meg a Hardver listában, ha a Python3.5 fel volt telepítve! Az alaprendszerrel együtt felrakott Python2.7 ha jól tudom nem jó, mert a broadlink lib 3.x verziót igényel.

    (#3005) Jamesch: A melóhelyről csak annyit tudtam kipróbálni, hogy újra aktiváltam a Broadlink Pro-t és a lib-et és restartoltam a Domoticzot. Az így sem indult el, ezért inkább valami python/környezet problémára tippelek, mert a Broadlink Pro jelenleg ki van húzva a konnektorból, tehát nem az azzal történő kommunikációba hal bele a Domoticz.

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz Jamesch #3005 üzenetére

    Egyelőre nincs eredmény. Másik raspberry-re telepítettem egy stable domoticzot, felraktam a python3.5 meg a broadlink cuccait, hozzá is tudtam adni a hardver oldalon, de a log-ban látszik, hogy nem tud csatlakozni:

    (Broadlink RM2) Connecting to: 10.0.0.24:34EA3372E704
    Error: (Broadlink RM2) Error Connecting to Broadlink device....
    (Broadlink RM2) Heartbeat interval set to: 30.
    (Broadlink RM2) Calling message handler 'onHeartbeat'.
    (Broadlink RM2) Calling message handler 'onHeartbeat'.

    Viszont legalább a domoticz nem száll el segmentation fault hibával mint a másik raspberry-n a beta verziós.

    Egyébként kicsit olyan érzésem van, hogy el sem jut a broadlink lib indításához, mert a .py fájl mellet nem jön létre a __pycache__ könyvtár, ami az első használatkor szokott legenerálódni. A gond az, hogy nagyon kevés infót lehet fellelni erről a témáról, a log-bejegyzések pedig nem igazán adnak támpontot a hibakereséshez...

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz Jamesch #3005 üzenetére

    Egyébként ezt a leírást követtem a telepítéshez, plusz a fórumokat néztem át. Egy dolog viszont nem teljesen tiszta. Ez a python program kezeli a Broadlink RM mini3 kontrollert is? Mert van ilyen szöveg a leírásában: "Remote control RM2/ RM mini3 : RM2 device remote controller" Mert az is van nekem, de ahhoz sem tud csatlakozni a domoticz, ugyanaz a hibaüzenet: "Error: (Broadlink RM2) Error Connecting to Broadlink device" Pedig az IP és a MAC is jól van belőve...

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3031 üzenetére

    Sajnos én sem jutottam előbbre, a Domoticz mindig csak a "Error Connecting to Broadlink device...." üzenetet ír. Nem kizárt, hogy ez a probléma az újabb RM Pro+ eszközök emlegetett/szidott hardver/szoftver módosításával függ össze, de ebben nem vagyok biztos. Az az érdekes, hogy ugyanezt a hibaüzit kapom az RM mini3 kontrollerhez történő csatlakozási próbálkozás esetén is, pedig az ugyanazt a python-broadlink plugint használja, habár annak működtetéséhez másik szkript kell. :U

    Nekem az a problémám, hogy a fellelhető fórumokat átböngészve sem igazán találtam korrekt infót arról, hogy mi lehet a gond. Nagyon kevés beírás van ez ügyben, így nem tudom eldönteni, hogy én rontok el valamit, vagy a v51 v52 firmware verziók és a módosított hardver miatt eleve reménytelen a csatlakoztatás. :(

    Annyi kérdésem lenne az RM Pro+ eszközzel rendelkező tapasztaltabb fórumtársakhoz, hogy mi a gond az RM Pro+ (v51 és v52 firmware) kontra Domoticz/Home Assistant összekötésével? Most akkor pontosan mi nem működik vele? Nem lehet összekapcsolni, vagy fel sem ismeri, vagy nem lehet betanítani, vagy csak az Alexa-val nem megy (Mintha Norby-007 azt írta volna)? Csak mert akkor nem görcsölünk vele feleslegesen...

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3050 üzenetére

    A kódok szerkesztése nem lenne gond, mert az RM Mini3 esetében is le kellett másolni a betanított kódokat a telefonról. A hétvégén megpróbáltam a Home Assinstant telepítését és beüzemelését az asztali gépemen, - hááát nem egy user friendly rencer! :) - de az sem látta a Pro-t, ezért kezdtem gyanakodni valami alapvető - pl. python vagy egyéb szoftverkörnyezet - problémára. Egyénként - ha jól láttam - a Domoticz és a HA is ugyanazt a python-broadlink v0.6-os plugint használja, ezért nem kizárt, hogy a Domoticz esetében is meg fog oldódni a csatlakozási gond... Még nem adom fel... :))

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz Norby-007 #3079 üzenetére

    Höhö, tegnap elkezdtem írni neked egy privát üzit ezzel a témával kapcsolatban, mert szerintem a tisztelt fórumtársak már megőrülnek tőlem... :)) Szóval inkább ott folytatom...

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3084 üzenetére

    Természetesen ha lesz valami érdemi előrelépés a megoldás szempontjából, azt meg fogom írni! :K

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz Norby-007 #3095 üzenetére

    Ahogy már PÜ-ben is értekeztünk róla, nekem v51-es firmware van az RM Pro-n és v52-re szeretné frissíteni magát. Valószínűleg ez a legrosszabb verzió, ennél további visszalépés történhetett az eszköz "külsős" szoftverekből történő kezelésében... :((( Egyelőre úgy néz ki a dolog, hogy nem érdemes RM Pro kontrollert vásárolni, hacsak nem tuti, hogy valamelyik korábbi hardware/firmware verziósról van szó, vagy megelégedsz a telefonos appos irányítással. :U És ha már itt tartunk óva intenék mindenkit a még működő mini3 következő firmware frissítésétől is - ha lesz egyáltalán -, mert ki tudja milyen meglepetést talál ki a Broadlink. Véleményem szerint nem nagyon várható megoldás erre a dologra, mert az egyik fórumon mintha arról panaszkodott volna egy fejlesztő, hogy a Broadlink az API ingyenességét szüntette meg és most 3000$-t kér érte. :(((

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    Ez a Broadlink RM Plus vajon "még" jól működhet Domoticz és HA kapcsolattal? Használ valaki ilyet? Mert elég jól le tudnám pontozni... :U

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    Az elmúlt napok szívása, bosszankodása és csalódottsága után kb. fél órával ezelőtt sikerült végre áttörést elérnem a Domoticz kontra Broadlink RM Pro+ (v51 firmware) összeházasításával kapcsolatban, ami ugyan kis lépés az emberiségnek, de hatalmas lépés nekem! :) A tesztek alatt totálisan hibátlan volt a Samsung TV, a Yamaha erősítő és az Aldi-s RF konnektorok kapcsolgatása / kezelése python parancssorból a Broadlink e-Control applikációból kimásolt kódszekvenciák segítségével. És ami a legfontosabb: A nagy örömtől vezérelve töltöttem magamnak egy jégert és felpattintottam egy sört! :)) A beállítással kapcsolatos tudnivalókhoz tulajdonképpen elég követni a Gh0sT féle Broadlink RM mini3 leírást, mert a Min3-hoz megírt BlackBeanControl python szkript tökéletesen használható az RM Pro+ kezeléséhez is. Az összes RM Pro+ távcuccossal betanult gomb kezelhető a szkriptből, egyelőre még szigorúan Python2.x környezetet használva, ugyanis a BlackBeanControl fejlesztése még 2.x alatt történt, tehát a szkript forrásának szintaktikája 2.x-es, és hibaüziket dob 3.x alatt. De a lényeg: MŰKÖDIK!!! Háááát innentől kezdve, csakis a végtelenbe és tovább! :DD

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz AcCEsS #3162 üzenetére

    Közben sikerült találnom egy Broadlink BlackBean python3 forkot, ez is hibátlanul működik (raspbian stretch/python 3.5 alatt tesztelve), csak pip3-al a netaddr csomagot is telepíteni kell hozzá. :C

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3165 üzenetére

    Szerintem nem fog problémát okozni a v52, mivel a changelog szerint csak "infrared code timeout problems" hiba lett javítva a v51-hez képest. Érdemes kipróbálnod, mert a jelenlegi nem működő állapot tuti nem ideális. :)

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3169 üzenetére

    A kódokat én a telefonos alkalmazásból szedtem ki, a betanítást nem a python szkriptel csináltam. Viszont a kódok kiszedéséhez rootolt telefon kell! https://github.com/NightRang3r/Broadlink-e-control-db-dump

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz AcCEsS #3171 üzenetére

    Mégsem kell rootolt telefon a Broadlink e-Control kódok kiolvasásához! A getBroadlinkSharedData.py szkripttel is kiszedhetők a kódok a /broadlink/newremote/SharedData/ könyvtárban tárolt jsonSubIr, jsonButton és jsonIrCode fájlok felhasználásával!

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz AcCEsS #3185 üzenetére

    Ezt visszavontam, sajnos tévedés volt! A Broadlink kódok kiolvasásához mégis kell az rmt.db, és annak kimásolásához root jog kell a telefonon. Bocs a téves infóért! :U

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    Nem címzem személy szerint, de azoknak írok akik a Broadlink Pro beüzemelésével bajlódnak. Két teljesen eltérő kezelési mód létezik. Az egyik módszer a korábbi Broadlink Pro eszközökhöz készült - tehát az újabb Pro Pro+ stb. eszközökkel nem működik -, ez fut a github-on Python control for Broadlink RM2 IR controllers néven. Na ezzel nem fog működni, de a telepítőcsomagjában lévő alap broadlink kommunikációs modulra épül a másik módszer (és az összes többi) is, tehát mindenképpen telepíteni kell, de csak python szinten legyen elérhető, a Domoticz nem kell, hogy Broadlink eszközként kezelje, tehát a nincs szükség a /home/pi/domoticz/plugins/BroadlinkRM2/ könyvtárba bemásolni semmit. (Nem is fog hardver elemként látszani, csak dummy kapcsolókhoz, eseményekhez és szkriptekhez lehet meghívni a python szkriptet ami kezelni tudja és a másik módszer része!) A másik módszer BlackBeanControl - Broadlink RM 3 Mini (aka Black Bean) control script névet fut a gihub-on, ennek az elvét írta le Gh0sT, ami az összefoglalóban is bent van. Annak a lényege, hogy a BlackBeanControl.ini nevű fájlban felvett IR/RF kódszekvenciákat a "python BlackBeanControl.py -c <kódszekvencia neve>" utasítással ki lehet küldeni a mini3 vagy bármilyen típusú Pro eszköz felé, ami vidáman kapcsolgatni fogja a kódhoz tartozó készülék adott funkcióját. Miivel az mjg59 féle python-broadlink már nem tud 100%-ban működni az új eszközökkel, ezért az IR/RF kódok betanítására sem képes, erre az Androidos e-Control applikáció fog kelleni, amiből majd ki lehet olvasni a kódszekvenciákat a Broadlink-e-control-db-dump nevű python csomaggal. A csomagból kiollózott kódokat kell beírni a BlackBeanControl.ini fájlba, és valami logikus nevet kell adni a kódszekvenciának. Ezekre lehet majd hivatkozni a fent említett módszerek bármelyikéből. Az mjg59 féle python-broadlink csomagból mindegy melyiket telepítjük, megy 2.x és 3.x python alatt is, de a Broadlink-e-control-db-dump csak 2.x alatt működik. A BlackBeanControl szintés 2.x verzióval kompatibilis, de abból létezik egy python 3.x átirat is ez. Én ezt használom, de az eredeti is működött jól. A python 2.x és 3.x telepítésére ezerféle leírás létezik, de raspbian és linux alatt az eltávolítása olyan csak a telepítéssel felkerült fájlokat és könyvtárakat is le fog szedni, melyek hiánya a későbbi újratelepítést meg fogja akasztani. Két rendszeren is belefutottam ebbe: Raspbian + Ubuntu 16.04 Csak most vettem észre, hogy a lényeget mér JoHn123 leírta. :)

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz AcCEsS #3239 üzenetére

    Bocs, ha a tegnapi Broadlink kezeléssel kapcsolatos leírásom egy kicsit zavaros volt, de hulla fáradt voltam már este. :) Nekem annyi kérdésem lenne azokhoz akiknek új Pro+ eszközük van és v52 firmware fut rajta, hogy azzal is működik a távirányítás? Azért kérdezem, mert az enyémen még a v51-es verzió van, és eddig nem mertem upgrade-elni. :U

    A Broadlink-es távirányítással kapcsolatban egyénként remek dolog az is, hogy a betanítás során a gomb nyomva tartási idejét is megtanulja az eszköz, és a kód kiküldésénél is ugyanúgy csinálja. :K Pl. az én Yamaha (házimozi) erősítőmön a hangerő -80dB-től folyamatosan emelhető, és +- 1dB-es lépésekben állítható. Az ilyen kis érték léptetése a valóságban alig érzékelhető, és mire a Domoticz felületén létrehozott gombokkal szép lassan felléptetném -35dB-re véget is érne a film. Ezért a betanításnál hosszabb ideig nyomva tartva a hangerő-szabályzó gombokat csináltam +- 5dB-es és +- 10dB-es lépéseket is, melyekhez szintén rendeltem kezelőgombokat a Domoticz felületén (és a Xiaomi Cube jobbra-balra csavarintásához is hozzárendeltem). Persze egy ideig próbálkoznom kellett a lenyomások idejével, mire sikerült elérnem a pontos és elvárt 5 és 10 dB értéket. Ezt csak azért írtam le, hátha valaki nem ismerte ezt a lehetőséget...

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz JoHn123 #3248 üzenetére

    Megosztom, de elég primitív, sok helyről összeollózott kód. Létre kell hozni egy szöveges XiaomiCubeTime felhasználói változót, mert abban tárolja az időzítés kezdő idejét. Ugyanis a kocka nem állandóan aktív, csak két koppintásra kezdi el figyelni/feldolgozni a mozgás-utasításokat 5 percig. Az időzítés minden újabb mozgatásra újraindul. Ez nagyon jó és fontos funkció az érdeklődők ellen, akik felveszik a kockát és forgatják meg rázzák, hogy "Ezmiez?". :)

    Tehát a jelenlegi funkciók:
    - két kopp = kocka aktiválás 5 percre
    - 180fok fordítás - fejjel lefelé = erősítő Be/Ki
    - 90 fok fordítás - a kocka egyik oldaláról a másikra = erősítő némítás (mute)
    - Csavarintás az óramutató járásával megegyezően = erősítő hangerő +5dB
    - Csavarintás az óramutató járásával ellentétesen = erősítő hangerő -5dB

    A funkciók az "Események" oldalon vannak felvéve, melyek külön-külön On/Off státushoz rendelt Broadlink IR kódokra névvel hivatkozva hívják meg a BlackBeanControl szkriptet pl. így: script://python/BlackBeanControl.py -c Yamaha_RX-V550_BE

    A kód:

    return {
    -- active = true,
    on = {
    devices = {
    'Xiaomi Cube'
    },
    },

    execute = function(domoticz, cube)
    local TimeLimit = 5 -- perc
    local Time = require('Time')
    local currentTime = Time()
    local cubeset = Time(domoticz.variables("XiaomiCubeTime").value)

    if (cube.levelName == "tap_twice") then
    domoticz.variables("XiaomiCubeTime").set(currentTime.rawDate .. " " .. currentTime.rawTime)
    cubeset = Time(currentTime.rawDate .. " " .. currentTime.rawTime)
    end

    if (cube.levelName == 'flip180') and cubeset.minutesAgo < TimeLimit then
    domoticz.variables("XiaomiCubeTime").set(currentTime.rawDate .. " " .. currentTime.rawTime)
    if domoticz.groups("Yamaha RX-V550 erősítő").state == "On" then
    domoticz.groups("Yamaha RX-V550 erősítő").switchOff()
    domoticz.groups("Yamaha RX-V550 MUTE").switchOff()
    domoticz.groups("Yamaha RX-V550 hangerő (+-5)").switchOff()
    domoticz.groups("Yamaha RX-V550 hangerő (+-1)").switchOff()
    elseif domoticz.groups("Yamaha RX-V550 erősítő").state == "Off" then
    domoticz.groups("Yamaha RX-V550 erősítő").switchOn()
    end
    end

    if (cube.levelName == 'flip90') and cubeset.minutesAgo < TimeLimit then
    domoticz.variables("XiaomiCubeTime").set(currentTime.rawDate .. " " .. currentTime.rawTime)
    if domoticz.groups("Yamaha RX-V550 MUTE").state == "On" then
    domoticz.groups("Yamaha RX-V550 MUTE").switchOff()
    elseif domoticz.groups("Yamaha RX-V550 MUTE").state == "Off" then
    domoticz.groups("Yamaha RX-V550 MUTE").switchOn()
    end
    end

    if (cube.levelName == 'clock_wise') and cubeset.minutesAgo < TimeLimit then
    domoticz.variables("XiaomiCubeTime").set(currentTime.rawDate .. " " .. currentTime.rawTime)
    domoticz.groups("Yamaha RX-V550 hangerő (+-5)").switchOn()
    end

    if (cube.levelName == 'anti_clock_wise') and cubeset.minutesAgo < TimeLimit then
    domoticz.variables("XiaomiCubeTime").set(currentTime.rawDate .. " " .. currentTime.rawTime)
    domoticz.groups("Yamaha RX-V550 hangerő (+-5)").switchOff()
    end

    if cubeset.minutesAgo >= TimeLimit then
    if domoticz.devices("Xiaomi Cube").state ~= "Off" then
    domoticz.devices("Xiaomi Cube").switchOff()
    end
    end
    end
    }

    Huhhh, ezt a kódot valahogy kattintható "hivatkozás" mőgé tudtam volna rejteni? :U

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz Yoshida #3247 üzenetére

    Igen, ezt pontosan a gyári broadlink e-control appal csináltam! :)

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3254 üzenetére

    @lplugo: Az IHC és az e-Control alól szerintem mindig működni fog, hiszen azok a saját applikációik. Engem kifejezetten a python parancssorból a BlackBeanControl segítségével történő vezérlés érdekelne, hogy vajon a v52 alatt is működik-e ugyanolyan jól, mint a v51 alól? Még nem mertem frissíteni a v52-re, de az abban javított "infrared code timeout problems" azért érdekelne...

    @jedie82: Örülök, hogy sikerült megcsinálnod! :) Nálad nem v52 firmware fut?

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3291 üzenetére

    A hibaüzenet szerint a BlackBeanControl.py szkript nem "látja" a broadlink modult. Ha már telepítetted, ellenőrizd le, hogy a broadlink plugin könyvtára a configparser + netaddr + pycrypto könyvtárakkal azonos helyen jött-e létre! Pl. raspberry-n nekem át kellett másolnom a /usr/local/lib/python3.5/dist-packages könyvtárból a /usr/lib/python3/dist-packages könyvtárba. Persze ezek az elérési útvonalak attól függenek, hogy 2.x vagy 3.x pythont telepítettél-e, de mindenképpen ez alapján indulj neki a hibakeresésnek!

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz layerke #3292 üzenetére

    Köszi szépen a leírást és a szkriptet!

    Majdnem minden működik, de a szkript végén a virtuális érzékelőkbe a mért értékek visszaírásánál hibaüzenetet kapok:

    EventSystem: Fetching url http://login:jelszó@10.0.0.10:8081/json.htm?param=udevice&type=command&idx=146&nvalue=0&svalue=25693...

    Error: Error opening url: http://login:jelszó@10.0.0.10:8081/json.htm?param=udevice&type=command&idx=146&nvalue=0&svalue=25693

    Persze a login:jelszó helyén a valós van. A szükséges "/home/pi/domoticz/scripts/lua/JSON.lua" fájl is elérhető. Frissítettem az utolsó béta verzióra is, de a hiba ugyanaz.

    Viszont ha a hibaüzenetből kimásolom az érzékelő url hivatkozását, és parancssorból kiadom a

    curl -S "http://login:jelszó@10.0.0.10:8081/json.htm?param=udevice&type=command&idx=146&nvalue=0&svalue=25693"

    utasítást, simán működik az érték beírása, megkapom az OK választ:

    {
    "status" : "OK",
    "title" : "Update Device"
    }

    Egyelőre átírtam az "UpdateDevice" elvre, így most működik, de az a módszer nem javasolt.

    Mi lehet a gond? Találkoztatok ilyen problémával?

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz layerke #3312 üzenetére

    Ráéreztél a lényegre, a beállításokban a helyi hálózat IP tartományát beállítottam név/jelszó nélkülinek, a forrásból ki sem vettem a név/jelszó hivatkozást és mégis rögtön megy! :) Köszönöm! Ez valami elbaltázás lehet a né/jelszó kezelésben. Most már frissül szépen! Egyedül a felhősödésről nincs infóm, mert a hozzánk legközelebbi időjárásállomás (Agárd) nem szolgáltat octa infót.

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz layerke #3315 üzenetére

    Azt én sem tudom, de szerintem az Ogimet táblázatában csak azoknál lehet octa infó, amelyeknél jobbról számolva az 5. és 6. oszlop nem üres. De lehet, hogy rosszul gondolom. Viszont a lekérdezésnél mindig 0 érték jön.

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz layerke #3343 üzenetére

    Igazad van, be kell lépni a részletes infókhoz és ott látszik az "N t". Próbából átállítottam Budapestre a WMOID-r és rögtön megjött az octa. Ha esetleg kitalálsz valami megoldást, szólj légy szíves! Köszi! :)

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    Képtelen vagyok üzembiztosan megoldani az otthoni jelenlét figyelését. Próbálkoztam a telefonok 5 percenkénti pingelésével (arping-el is), de ugye x időn belül elalszanak és nem válaszolnak. 3 napja beüzemeltem a hivatalos Domoticz applikációban a Geofencing funkciót, ami az aktiválásakor be is kapcsolta a hozzárendelt kapcsolót. Hasonlóképp az asszony telefonján is be lett állítva, csak azon a GeoFence for Domoticz lett belőve. Mindegyik hibátlanul kapcsol az első aktiváláskor, de utána kb. semmi. Pontosabban az asszony telója kb. 3 óra késéssel jelezte, hogy Off, azaz kilépett az otthoni koordináták "bűvköréből". Mindkét telefonon az adott app az energiatakarékos funkciókban mint kivétel szerepel, hogy ne altassa el őket a doze vagy valami más. Sajnos a Domoticz szerint jelenleg én még mindig otthon, pedig már 2 órája a munkahelyemen hesszelek. :U

    Pedig olyan szép selector kapcsolót (és egy pici szkriptet) csináltam az otthon tartózkodók létszámából :) :

    Ti milyen megoldást használtok az otthonlét jelzésére? (Ezt eccer régebben már kérdeztem, de hátha vannak újabb megoldások.) Illetve a Geofencing funkció megbízhatóságával kapcsolatban kinek mi a tapasztalata?

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz layerke #3357 üzenetére

    A Domo saját pingelője ugyanúgy zsákutca, mert a telefonok egy idő múlva nem válaszolnak. Amit találtál az egy érdekes módszer, el is mentettem a linket. Számomra a lényeg a válaszod első fele volt, hogy nálad jól működik a GeoKerítés, mert számomra az a megoldás a legegyszerűbb és az tetszik a legjobban. Akkor még töröm a fejem mi lehet a probléma... Köszönöm! :)

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz itanczos #3361 üzenetére

    Azt még nem, milyen módon oldottad meg? RPI3-ról megy a Domo.

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz JoHn123 #3387 üzenetére

    Pont ez van nálunk is, tegnap az enyém megjavult azaz jól jelezte a megérkezésemet és a távozásomat is, de az asszony nem ment el otthonról, csak megjött! :) Tehát az ő telefonjával (Xiaomi) ez a funkció totál bizonytalan. Viszont ez a bluetooth-os megoldás tetszik, megnéztem az Ali-n és jó pár féle van. Azt hiszem ez lesz a legjobb megoldás, köszönöm az információt! :)

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz AcCEsS #3393 üzenetére

    Nem igazán értem a dolgot, de ma teljesen jól működött az telefonomon meg a nej telefonján is a GeoFence. Rejtély, hogy mitől javult meg, de a lényeg, hogy most OK!. :U Az elkövetkező napokban a stabilitását/megbízhatóságát fogom tesztelni, de biztos ami biztos JoHn123 bluetooth-os megoldásához is megrendeltem a kiegészítőket. :K

    Úgy tűnik a layerke által közkinccsé tett "napállásésfelhőkitakarás" monitorozó szkriptre is találtam megoldást. Nálam a problémát az okozza, hogy nincs a közelemben - olyan, a szkript által használt - Ogimet időjárásállomás, ami felhősödési (Octa) információt is tud szolgáltatni. De találtam egy másik szkriptet, ami a DarkSky szolgáltató időjárás API-jára épül, és van Octa infó is. Persze akadt némi gond a két rendszer eltérő működési elve miatt, mert az Ogimet 1-8 közötti értékben adja meg a felhősödés mértékét, míg a DarkSky 0-1 közötti tizedesjegyű számmal, ami százzal szorozva a mindenkori % érték. Pl. 73% (emiatt talán a DarkSky jobb, mert pontosabb). Sikerült az eredeti szkript Ogimet infóit átcserélni a DarkSky szkript-forrásra, és az Ogimet-ből származó alapadatok számolási módszerét a DarkSky-ra alakítani. Jelenleg a két rendszer párhuzamosan fut, így ellenőrizni tudom, hogy a két érték mennyire hasonló/eltérő egymástól. A jelenlegi adatok alapján gyakorlatilag azonos számokat ad (pl. Lux) mindkét forrás, habár az Ogimet-től lekért Octa infók budapestiek, ami tőlem kb. 60km-re fekszik, míg a DarkSky hullaprecíz koordináták alapján szolgáltat adatokat. (Igaz, hogy ma, szinte 100%-ban borult, felhős idő volt, tehát még nincs túl sok tapasztalat az adatok változásáról, pontosságról.) Meglátjuk, egyelőre folyik a teszt, de ha valakinek hozzám hasonló "Octa adatforrás" problémái vannak, el tudom küldeni a DarkSky-ra átgyúrt szkriptet tesztelésre.

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz layerke #3398 üzenetére

    Ok, szerintem kell 1-2 hét teszt, de utána feldobom! :)

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz Vodike #3438 üzenetére

    Bocs, csak most volt időm átolvasgatni az új fórumbejegyzéseket (influenza meg ablakcsere van nálunk), de úgy néz ki tényleg működik a Dark Sky időjárás-szolgáltató felhősödési (Octa) infója és a hozzáigazított szkript.

    A szkript egyébként tartalmazza az eredeti Ogimet-féle működési elvet is, a Dark Sky használati lehetőségét csak kiegészítésként adtam hozzá, és a WeatherStation nevű változó O vagy D értékével állítható be, hogy O = Ogimet vagy D = Dark Sky legyen az Octa adat szolgáltatója.

    A működéshez kell egy Dark Sky API kulcsot igényelned a következő módon: A darksky.net oldalon felül válaszd ki a "Developers" módot, alul meg a Try Now gomra nyomva egy gyors regisztráció után megkapod az API kulcsodat, amit be kell másolnod a szkript dsAPIkey változójának aposztrófjai közé. A lekérdezésre az API elég sok infót ad vissza: pl. UV Index, min/max hőmérséklet, nyomás, időjárás előrejelzés stb., a DEBUG módban meg lehet nézni. A szkript jelenleg 10 percenkénti ütemezéssel fut.

    Egyébként a beírásokban a command utáni hülye karakter "json.htm?type=command¶m=udevice&idx=" egy html dekódolási sajátosság, ami lecseréli a "&" utáni "param" nevű tag elejét, én az ilyen hivatkozások paramétertagjainak sorrendjét megfordítottam, és így már jó: "json.htm?param=udevice&type=command&idx="

    Egy ideig még tuti tart nálunk az őrület, ha valaki elakadna segíteni fogok, csak kicsit több lesz a válaszidőm... :)

    És a szkript:

    --[[
    ~/domoticz/scripts/lua/script_time_SolarSensor.lua

    -- Autors ----------------------------------------------------------------
    V1.0 - Sébastien Joly - Great original work
    V1.1 - Neutrino - Adaptation to Domoticz
    V1.2 - Jmleglise - An acceptable approximation of the lux below 1° altitude for Dawn and dusk + translation + several changes to be more userfriendly.
    V1.3 - Jmleglise - No update of the Lux data when <=0 to get the sunset and sunrise with lastUpdate
    V1.4 - use the API instead of updateDevice to update the data of the virtual sensor to be able of using devicechanged['Lux'] in our scripts. (Due to a bug in Domoticz that doesn't catch the devicechanged event of the virtual sensor)
    ]]--

    -- Beállítások---------------------------------------------------------------
    -----------------------------------------------------------------------------
    local localhost = '127.0.0.1:8080' -- IP és port
    local city = "VÁROSOD" -- Wunderground API-val használt lakhelyed
    local countryCode = "HU" -- Országkód Wunderground API-hoz
    local idxLux ='szám' -- Lux ID
    local idxSolarAzimuth ='szám' -- Azimut ID
    local idxSolarAltitude ='szám' -- Nap magasság ID
    local idxCloud = 'szám' -- Felhőkitakarás ID
    local idxUserVarOcta='szám' -- Az octa változó ID-je
    local wuAPIkey = "API" -- Weather Underground API kulcsod
    local latitude = LAT -- Otthonod szélességi foka
    local longitude = LON -- Otthonod hosszúsági foka
    local altitude = szám -- Otthonod tengerszint feletti magassága (ha a debug 1-en van, akkor az első lekérdezésnél meg fog jelenni ez a naplóban és beírhatod ide
    local DEBUG = 0 -- 0 nincs, 1 domoticz napló, 2 fájlba írás

    local WeatherStation = 'D' -- octa (felhőkitakarás) információk szolgáltatója: O = Ogimet, D = Dark Sky

    if ( WeatherStation == "O" ) then
    -- Ogimet (https://www.ogimet.com/resynops.phtml.en)
    WMOID = 'szám' -- A hozzád legközelebbi SYNOP állomás kódja
    else
    -- Dark Sky (https://darksky.net)
    dsAPIkey='API' -- Dark Sky API kulcsod
    coordinates=latitude..','..longitude
    end
    -----------------------------------------------------------------------------
    -----------------------------------------------------------------------------

    function leapYear(year)
    return year%4==0 and (year%100~=0 or year%400==0)
    end

    function split(s, delimiter)
    result = {};
    for match in (s..delimiter):gmatch("(.-)"..delimiter) do
    table.insert(result, match);
    end
    return result;
    end

    function round(num, dec)
    if (num == 0 ) then
    return 0
    else
    local mult = 10^(dec or 0)
    return math.floor(num * mult + 0.5) / mult
    end
    end

    function os.capture(cmd, raw)
    local f = assert(io.popen(cmd, 'r'))
    local s = assert(f:read('*a'))
    f:close()
    if raw then return s end
    s = string.gsub(s, '^%s+', '')
    s = string.gsub(s, '%s+$', '')
    s = string.gsub(s, '[\n\r]+', ' ')
    return s
    end
    -----------------------------------------------------------------------------

    commandArray = {}

    time = os.date("*t")
    if ( (time.min % 10) == 0 ) then -- Run every 10 minutes. Check the wundergroud API limitation before changing this

    json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux
    --json = (loadfile "D:\\Domoticz\\scripts\\lua\\json.lua")() -- For Windows

    local arbitraryTwilightLux=6.32 -- W/m² egal 800 Lux (the theoritical value is 4.74 but I have more accurate result with 6.32...)
    local constantSolarRadiation = 1361 -- Solar Constant W/m²

    if ( uservariables['octa'] == nil ) then
    print("Error : Did you create the Uservariable octa ?")
    end

    -- API Wunderground
    local config=assert(io.popen('curl http://api.wunderground.com/api/'..wuAPIkey..'/conditions/q/'..countryCode..'/'..city..'.json'))
    local location = config:read('*all')
    config:close()
    local jsonLocation = json:decode(location)

    if ( DEBUG == 1) then
    local latitude = jsonLocation.current_observation.display_location.latitude
    local longitude = jsonLocation.current_observation.display_location.longitude
    local altitude = jsonLocation.current_observation.display_location.elevation
    print('Lat: '..latitude..'Long: '..longitude..'Alt: '..altitude)
    end

    relativePressure = jsonLocation.current_observation.pressure_mb -- if you have an another way to get the Pressure, (local barometer ...) then you may optimize the script and avoid the call to api.wunderground)
    -----------------------------------------------------------------------------

    local year = os.date("%Y")
    local numOfDay = os.date("%j")

    if ( leapYear(year) == true ) then
    nbDaysInYear = 366 -- How many days in the year ?
    else
    nbDaysInYear = 365
    end

    angularSpeed = 360/365.25
    local Declinaison = math.deg(math.asin(0.3978 * math.sin(math.rad(angularSpeed) *(numOfDay - (81 - 2 * math.sin((math.rad(angularSpeed) * (numOfDay - 2))))))))
    timeDecimal = (os.date("!%H") + os.date("!%M") / 60) -- coordinatesinated Universal Time (UTC)
    solarHour = timeDecimal + (4 * longitude / 60 ) -- The solar Hour
    hourlyAngle = 15 * ( 12 - solarHour ) -- hourly Angle of the sun
    sunAltitude = math.deg(math.asin(math.sin(math.rad(latitude))* math.sin(math.rad(Declinaison)) + math.cos(math.rad(latitude)) * math.cos(math.rad(Declinaison)) * math.cos(math.rad(hourlyAngle)))) -- the height of the sun in degree, compared with the horizon

    local azimuth = math.acos((math.sin(math.rad(Declinaison)) - math.sin(math.rad(latitude)) * math.sin(math.rad(sunAltitude))) / (math.cos(math.rad(latitude)) * math.cos(math.rad(sunAltitude) ))) * 180 / math.pi -- deviation of the sun from the North, in degree
    local sinAzimuth = (math.cos(math.rad(Declinaison)) * math.sin(math.rad(hourlyAngle))) / math.cos(math.rad(sunAltitude))

    if (sinAzimuth<0) then
    azimuth=360-azimuth
    end

    sunstrokeDuration = math.deg(2/15 * math.acos(- math.tan(math.rad(latitude)) * math.tan(math.rad(Declinaison)))) -- duration of sunstroke in the day . Not used in this calculation.
    RadiationAtm = constantSolarRadiation * (1 +0.034 * math.cos( math.rad( 360 * numOfDay / nbDaysInYear ))) -- Sun radiation (in W/m²) in the entrance of atmosphere.

    -- Coefficient of mitigation M
    absolutePressure = relativePressure - round((altitude/ 8.3),1) -- hPa
    sinusSunAltitude = math.sin(math.rad(sunAltitude))
    M0 = math.sqrt(1229 + math.pow(614 * sinusSunAltitude,2)) - 614 * sinusSunAltitude
    M = M0 * relativePressure/absolutePressure

    if (DEBUG == 1) then
    print('<b style="color:Blue"============== SUN LOG ==================</b>')
    print(os.date("%Y-%m-%d %H:%M:%S", os.time()))
    print(city .. ", latitude:" .. latitude .. ", longitude:" .. longitude)
    print("Home altitude = " .. tostring(altitude) .. " m")
    print("number Of Day = " .. numOfDay)
    if ( nbDaysInYear == 366 ) then
    print(year .." is a leap year !")
    else
    print(year.." is not a leap year")
    end
    print("Angular Speed = " .. angularSpeed .. " per day")
    print("Declinaison = " .. Declinaison .. "°")
    print("Universel coordinatesinated Time (UTC)".. timeDecimal .." H.dd")
    print("Solar Hour ".. solarHour .." H.dd")
    print("Altitude of the sun = " .. sunAltitude .. "°")
    print("Angular hourly = ".. hourlyAngle .. "°")
    print("Azimuth of the sun = " .. azimuth .. "°")
    print("Duration of the sunstroke of the day = " .. round(sunstrokeDuration,2) .." H.dd") -- not used
    print("Radiation max in atmosphere = " .. round(RadiationAtm,2) .. " W/m²")
    print("Local relative pressure = " .. relativePressure .. " hPa")
    print("Absolute pressure in atmosphere = " .. absolutePressure .. " hPa")
    print("Coefficient of mitigation M = " .. M .." M0:"..M0)
    end
    -----------------------------------------------------------------------------

    if ( WeatherStation == "O" ) then
    -------- Ogimet --------
    -- Get SYNOP message from Ogimet web site
    hourUTCminus1 = os.date("!%H")-1

    if ( string.len(hourUTCminus1) == 1 ) then
    hourUTCminus1 = "0" .. hourUTCminus1
    end

    UTC = os.date("%Y%m%d").. hourUTCminus1.."00" -- os.date("!%M")

    if ( DEBUG == 1 ) then
    local WMOID = jsonLocation.current_observation.display_location.wmo
    end

    cmd='curl "http://www.ogimet.com/cgi-bin/getsynop?block='..WMOID..'&begin='..UTC..'"'

    if ( DEBUG == 1) then
    print(cmd)
    end

    local ogimet=assert(io.popen(cmd))
    local synop = ogimet:read('*all')
    ogimet:close()

    if ( DEBUG == 1) then
    print('ogimet:'..synop)
    end

    if ( string.find(synop,"Status: 500") == nil ) then
    rslt = split(synop,",")
    CodeStation = rslt[1]
    rslt = split(synop, " "..CodeStation.. " ")
    Trame = string.gsub(rslt[2], "=", "")
    Trame = CodeStation .." ".. Trame
    rslt = split(Trame, " ")
    Octa = string.sub(rslt[3], 1, 1) -- 3rd char is the cloud layer. 0=no cloud, 1-8=cloudy from 1 to 8 max, 9=Fog, /=no data
    if ( Octa == "/" ) then -- not defined ? take the previous value
    Octa = uservariables['octa']
    elseif ( Octa == "9" ) then
    Octa = 8
    end
    else
    Octa = uservariables['octa']
    end
    else
    -------- Dark Sky --------
    -- Get weather information from Dark Sky web site
    cmd='curl -s "https://api.darksky.net/forecast/'..dsAPIkey..'/'..coordinates..'?lang=hu&units=ca&exclude=hourly,flags"'

    if ( DEBUG == 1) then
    print(cmd)
    end

    result=os.capture(cmd)

    -- Reading values from json
    local jsonValeur = json:decode(result)

    Octa = jsonValeur.currently.cloudCover*100

    if ( Octa < 0 or Octa > 100 ) then -- Ha valami hibás infó jönne, az előző tárolt adattal számol
    Octa = uservariables['octa']
    end

    if ( DEBUG == 1) then
    val_Patm = jsonValeur.currently.pressure
    val_UV = jsonValeur.currently.uvIndex
    -- val_Vis = jsonValeur.currently.visibility -- Ezt az infót jelenleg nem adja vissza a json kérés
    val_Cloud = jsonValeur.currently.cloudCover*100
    val_Tmin = round(jsonValeur.daily.data[1].temperatureLow,1)
    val_Tmax = round(jsonValeur.daily.data[1].temperatureHigh,1)
    icon = jsonValeur.daily.data[1].icon
    summary = jsonValeur.daily.data[1].summary

    -- Converting Dark Sky icon into domoticz forecast code
    if icon=="clear-day" or icon=="clear-night" then prev=1 --Sunny
    elseif icon=="rain" or icon=="snow" or rain=="sleet" then prev=6 --Cloudy/Rain
    elseif icon=="wind" or icon=="fog" then prev=0 --Stable
    elseif icon=="cloudy" then prev=2 --Cloudy
    elseif icon=="partly-cloudy-day" or icon=="partly-cloudy-night" then prev=3 --Unstable
    else prev=5 --Unknown
    end

    forecast=summary.." Min : "..val_Tmin.."°C Max : "..val_Tmax.."°C"

    print("Pressure : "..val_Patm)
    print("UV Index : "..val_UV)
    -- print("Visibility : "..val_Vis) -- Ezt az infót jelenleg nem adja vissza a json kérés
    print("Temperature min J+1 : "..val_Tmin)
    print("Temperature max J+1 : "..val_Tmax)
    print("Icon : "..icon.." "..prev)
    print("Summary : "..summary)
    print("Previsions : "..forecast)
    end
    end
    -----------------------------------------------------------------------------

    commandArray[#commandArray + 1] = {['Variable:octa'] = tostring(Octa)}

    if ( WeatherStation == "O" ) then -- Factor of mitigation for the cloud layer
    -------- Ogimet --------
    Kc=1-0.75*math.pow(Octa/8,3.4)
    else
    -------- Dark Sky --------
    Kc=1-0.75*math.pow(Octa/100,3.4) -- Remélem ez így jó
    end

    if ( sunAltitude > 1 ) then -- Below 1° of Altitude , the formulae reach their limit of precision.
    directRadiation = RadiationAtm * math.pow(0.6,M) * sinusSunAltitude
    scatteredRadiation = RadiationAtm * (0.271 - 0.294 * math.pow(0.6,M)) * sinusSunAltitude
    totalRadiation = scatteredRadiation + directRadiation
    Lux = totalRadiation / 0.0079 -- Radiation in Lux. 1 Lux = 0,0079 W/m²
    weightedLux = Lux * Kc -- radiation of the Sun with the cloud layer
    elseif ( sunAltitude <= 1 and sunAltitude >= -7 ) then -- apply theoretical Lux of twilight
    directRadiation = 0
    scatteredRadiation = 0
    arbitraryTwilightLux=arbitraryTwilightLux-(1-sunAltitude)/8*arbitraryTwilightLux
    totalRadiation = scatteredRadiation + directRadiation + arbitraryTwilightLux
    Lux = totalRadiation / 0.0079 -- Radiation in Lux. 1 Lux = 0,0079 W/m²
    weightedLux = Lux * Kc -- radiation of the Sun with the cloud layer
    elseif ( sunAltitude < -7 ) then -- no management of nautical and astronomical twilight...
    directRadiation = 0
    scatteredRadiation = 0
    totalRadiation = 0
    Lux = 0
    weightedLux = 0 -- should be around 3,2 Lux for the nautic twilight. Nevertheless.
    end

    if ( DEBUG == 1 ) then
    if ( WeatherStation == "O" ) then
    -------- Ogimet --------
    print("Ogimet")
    print("Station SYNOP = " .. WMOID)
    else
    print("Dark Sky")
    end
    print( Octa .. " Octa")
    print("Kc = " .. Kc)
    print("Direct Radiation = ".. round(directRadiation,2) .." W/m²")
    print("Scattered Radiation = ".. round(scatteredRadiation,2) .." W/m²")
    print("Total radiation = " .. round(totalRadiation,2) .." W/m²")
    print("Total Radiation in lux = ".. round(Lux,2).." Lux")
    print("and at last, Total weighted lux = ".. round(weightedLux,2).." Lux")
    end
    -----------------------------------------------------------------------------

    if ( tonumber(otherdevices_svalues['Lux'])+round(weightedLux,0) > 0 ) then -- No update if Lux is already 0. So lastUpdate of the Lux sensor will keep the time when Lux has reached 0. (Kind of timeofday['SunsetInMinutes'])
    commandArray[#commandArray + 1]={['OpenURL']="http://"..localhost.."/json.htm?param=udevice&type=command&idx="..idxLux.."&nvalue=0&svalue="..tostring(round(weightedLux,0)) }
    end
    commandArray[#commandArray + 1]={['OpenURL']="http://"..localhost.."/json.htm?param=udevice&type=command&idx="..idxSolarAzimuth.."&nvalue=0&svalue="..tostring(round(azimuth,0)) }
    commandArray[#commandArray + 1]={['OpenURL']="http://"..localhost.."/json.htm?param=udevice&type=command&idx="..idxSolarAltitude.."&nvalue=0&svalue="..tostring(round(sunAltitude,0)) }

    if ( WeatherStation == "O" ) then
    -------- Ogimet --------
    commandArray[#commandArray + 1]={['OpenURL']="http://"..localhost.."/json.htm?param=udevice&type=command&idx="..idxCloud.."&nvalue=0&svalue="..tostring(round(Octa*100/8,0)) }
    else
    -------- Dark Sky --------
    commandArray[#commandArray + 1]={['OpenURL']="http://"..localhost.."/json.htm?param=udevice&type=command&idx="..idxCloud.."&nvalue=0&svalue="..tostring(round(Octa,0)) }
    end

    -----------------------------------------------------------------------------

    if ( DEBUG == 2 ) then
    logDEBUG=os.date("%Y-%m-%d %H:%M:%S",os.time())
    logDEBUG=logDEBUG.." Azimuth:" .. azimuth .. " Height:" .. sunAltitude
    logDEBUG=logDEBUG.." Octa:" .. Octa.." KC:".. Kc
    logDEBUG=logDEBUG.." Direct:"..directRadiation.." inDirect:"..scatteredRadiation.." TotalRadiation:"..totalRadiation.." LuxCloud:".. round(weightedLux,2)
    os.execute('echo '..logDEBUG..' >>logSun.txt') -- compatible Linux & Windows
    end
    end

    return commandArray

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3512 üzenetére

    A "Vegyes" lapfül alatt találod meg a lekért értékeket (a virtuális érzékelőknek általad adott elnevezésekkel), az "octa" értékét pedig a Beállítás -> Több lehetőség -> Felhasználói változók alatt.

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz Vodike #3508 üzenetére

    Szívat a Dark Sky féle felhőkitakarás infó. :) Tegnap is volt egy olyan időszak, amikor kék, tiszta ég volt egy rövid ideig, de a lekért octa 82% felhősödési értéket adott vissza (a jó infó csak késve érkezett meg). Ma reggel meg a Domoticz nem kapcsolta le az állólámpánkat, pedig belőttem, hogyha már kellően világos van, (kb. 3000 lux külső fényerő) akkor kapcsoljon má' le, ne fogyassza azt a kőkemény 18 wattot feleslegesen, höh! :D Meglepődve láttam, hogy reggel fél nyolckor kb. 1600 lux fényerőről van infóm, pedig már elég világos volt. Ja, és a webes felület teljesen más, jónak tűnő értéket mutatott! Most volt egy kis időm foglalkozni a dologgal, és szerintem megvan a hiba oka. A Dark Sky a megadott koordináták alapján kiszámolt időzónát hiába adja vissza válaszként jól (Europe/Budapest), a küldött adat unix timestampje UTC szerinti. Azaz 1 órával korábbi infókat küld vissza, azaz reggel 8-kor még csak a 7 órás infók érkeztek meg. Legalábbis szerintem. Megnéztem az API leírását és lehet olyan módon is kérést küldeni, hogy a kért időpontra vonatkozó értékeket fogja visszaadni. Ezért a szkriptben lévő sort módosítottam, így az aktu idő is belekerült a kérésbe.

    Ezt a sort:

    cmd='curl -s "https://api.darksky.net/forecast/'..dsAPIkey..'/'..coordinates..'?lang=hu&units=ca&exclude=hourly,flags"'

    módosítottam erre:

    cmd='curl -s "https://api.darksky.net/forecast/'..dsAPIkey..'/'..coordinates..','..("%04d-%02d-%02dT%02d:%02d:%02dZ"):format(time.year, time.month, time.day, time.hour, time.min, time.sec)..'?lang=hu&units=ca&exclude=hourly,flags"'

    Most jónak tűnik minden, de azért még tesztelem.

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3519 üzenetére

    Úgy tűnik nem hoztál létre octa nevű és integer típusú felhasználói változót, a longitude beállításnál meg mintha aposztróf probléma lenne... Minden beállítással kapcsolatos adatot olyan formátumban adj meg, ahogy a mintában szerepel!

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3522 üzenetére

    Nem vagyok most gép mellet, ezért nem tudom mi a 48. sor, de holnap megnézem és megpróbálok segíteni.

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3536 üzenetére

    Ezek a típusok kellenek:

    Lux = Lux
    Felhőkitakarás = Százalék
    Azimut = "Custom Sensor" és a tengely felirat az Fok. Nálam a neve: Nap irányszöge (Azimut)
    Nap magasság = "Custom Sensor" és a tengely felirat az Fok. Nálam a neve: Nap magassági szöge (Altitude)

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz lplugo #3542 üzenetére

    Nem fárasztasz bennünket, mindenkinek el kell indulnia valahogy, én is csak loholok a profik nyomában! :) Sajnos nagyon de nagyon lemaradva, de azért az emberre mindig ragad valami tudásféle... :))

    Minden érzékelő amit létrehoztál kapott egy idx azonosítót (ami tulajdonképpen egy sima sorszám), és a Beállítás -> Eszközök menüpont sorainak második oszlopában szerepel. Ott kell megnézned, hogy melyik érzékelő milyen sorszámot kapott és azt kell beírnod a megfelelő változóhoz rendelt 'szám' helyre.

    local idxLux ='szám' -- Lux ID
    local idxSolarAzimuth ='szám' -- Azimut ID
    local idxSolarAltitude ='szám' -- Nap magasság ID
    local idxCloud = 'szám' -- Felhőkitakarás ID
    local idxUserVarOcta='szám' -- Az octa változó ID-je

    Ha nálad a "Nap irányszöge (Azimut)" pl. a 123-as sorszámon szerepel, akkor azt így kell beírnod a szkript beállításo részébe:

    local idxSolarAzimuth = '123'

    Így működnie kell! :K

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    Sajnos ez az egész felhősödési infó (Octa) nem ér egy kalap szamócát sem. :( Jelenleg is 89%-os felhőkitakarási értéket kapok a Dark Sky-tól, úgy, hogy kb. 3 órája süt a nap ezerrel és kék az ég. Ránéztem az Ogimet-féle budapesti adatokra is, az meg 7-es felhősödést ír, ami egyéb helyről származó műholdképek alapján egyszerűen lehetetlen. Kár, hogy ennyire pontatlanok az adatok vagy csak nagyon sokat késnek, de a lényegen nem változtat: A kinyert lux infók alapján nem lehet a lakásvilágítás optimalizálására használni. Egy kis tűréshatárt beleszámítva jópofa lett volna valós szenzorok nélküli működést megvalósítani, de sajnos túl nagyok az eltérések a valósághoz képest. Viszont maga az ötlet nagyon tetszik, és mivel a saját szkriptek jól működnek, hatalmas beruházásként rendeltem is fényérzékelő-szenzorokat. Remélem ezekkel normálisan meg tudom csinálni. :K

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz enesbcs #3548 üzenetére

    Viccelsz? Ez kétszer annyiba kerül! :) Köszönöm a tippet, rendeltem ebből is! :))

    AcCEsS (https://www.metalenciklopedia.hu)

  • AcCEsS

    senior tag

    válasz itanczos #3563 üzenetére

    Jó kérdés milyen módon lehet majd beüzemelni, nálam egyelőre a PI / Wemos páros mellett fog működni a tv-állványon. Kültéri dobozra ezt javasolták, de én egyelőre beltérben, összedrótozva fogom tesztelni.

    [ Szerkesztve ]

    AcCEsS (https://www.metalenciklopedia.hu)

Új hozzászólás Aktív témák