|
Post by nils on Jan 15, 2015 10:38:50 GMT 1
Sinds december ook in het bezit van een HomeWizard en wat lopen spelen met scripts op mijn Synology NAS. Ik heb wat shell scripts gemaakt en op zich werkt dat prima.
Mijn probleem is dat mijn HomeWizard vast loopt na een paar dagen. Ik veronderstel dat ik de HW overload met status requests, maar als je via scripts iets wil doen dan moet je toch wel de mogelijk hebben om realtime status van de HW te krijgen. Overigens kan het vastlopen ook iets anders zijn, aangezien de eerste keer dat het gebeurde er nog geen scripts draaiden.
Hoe doen jullie dat?
|
|
|
Post by memyself on Jan 15, 2015 10:58:59 GMT 1
Ik laat de Homewizard automatisch iedere nacht resetten met behulp van een schakelklokje op de voeding.
|
|
erikp
Junior Sensor Specialist
Posts: 27
|
Post by erikp on Jan 15, 2015 19:52:58 GMT 1
Sinds december ook in het bezit van een HomeWizard en wat lopen spelen met scripts op mijn Synology NAS. Ik heb wat shell scripts gemaakt en op zich werkt dat prima. Mijn probleem is dat mijn HomeWizard vast loopt na een paar dagen. Ik veronderstel dat ik de HW overload met status requests, maar als je via scripts iets wil doen dan moet je toch wel de mogelijk hebben om realtime status van de HW te krijgen. Overigens kan het vastlopen ook iets anders zijn, aangezien de eerste keer dat het gebeurde er nog geen scripts draaiden. Hoe doen jullie dat? Je hoeft met mijn methode de homewizard dus niet te overloaden met requests want je leest de status niet uit je krijgt de statussen realtime door van de homewizard. Lees het document even door dan hoop ik dat het duidelijk is. Ik had eerst trouwens ook alles geregeld via uitlezen maar omdat de homewizard niet zoveel aan kan inderdaad gaat het dan met de tijd mis, daarna dus deze manier ontwikkeld en hij werkt heel goed zonder restarts van de homewizard.
|
|
|
Post by nils on Jan 15, 2015 22:25:08 GMT 1
Top, ik had het documentje helemaal boven in nog niet gezien, alleen het voorbeeld onder je post. Hoewel ik niet helemaal thuis in perl ben, begrijp ik je documentje wel, dus daar ga ik binnenkort eens wat mee aan de gang.
Super, krijg er al weer helemaal zin in om het helemaal naar m'n zin te maken.
|
|
|
Post by nils on Jan 15, 2015 23:57:53 GMT 1
Dat voorbeeld uit het documentje met een IP schakelaar werkt prima. Even een vraag ivm met mijn geringe kennis van perl: de gekozen poort blijft open staan, is deze dan ook toegankelijk voor anderen? Of luistert alleen dit script op die poort en als de data niet overeenkomt met de data in de code ("bellon" bv) gebeurt er niets.
Verder werkt dit alleen met acties (die door ondersteunde sensors in de HW kunnen worden gestart). Mijn idee was ook om de data van de heatlink/thermostaatkranen te gebruiken om te schakelen, maar dat kan volgens mij niet op deze manier. Het zou natuurlijk mooi zijn als dit standaard door de HW wordt ondersteund, maar voorlopig is dat nog niet zo. Ik zou namelijk graag de data van de thermostaatkraan gebruiken om de ketel via de heatlink aan te sturen, zodat ik verschillende ruimten apart kan regelen.
Voorlopig kan ik echter wel even vooruit met de IP schakelaars!
|
|
|
Post by nils on Jan 16, 2015 0:04:05 GMT 1
Ik laat de Homewizard automatisch iedere nacht resetten met behulp van een schakelklokje op de voeding. En hoe vaak check je de status van de sensors dan? De IP schakelaar is op zich wel een goede oplossing maar heeft ook nog zijn beperkingen volgens mij (door de beperkingen in de HW zelf).
|
|
erikp
Junior Sensor Specialist
Posts: 27
|
Post by erikp on Jan 16, 2015 12:23:11 GMT 1
Dat voorbeeld uit het documentje met een IP schakelaar werkt prima. Even een vraag ivm met mijn geringe kennis van perl: de gekozen poort blijft open staan, is deze dan ook toegankelijk voor anderen? Of luistert alleen dit script op die poort en als de data niet overeenkomt met de data in de code ("bellon" bv) gebeurt er niets. Verder werkt dit alleen met acties (die door ondersteunde sensors in de HW kunnen worden gestart). Mijn idee was ook om de data van de heatlink/thermostaatkranen te gebruiken om te schakelen, maar dat kan volgens mij niet op deze manier. Het zou natuurlijk mooi zijn als dit standaard door de HW wordt ondersteund, maar voorlopig is dat nog niet zo. Ik zou namelijk graag de data van de thermostaatkraan gebruiken om de ketel via de heatlink aan te sturen, zodat ik verschillende ruimten apart kan regelen. Voorlopig kan ik echter wel even vooruit met de IP schakelaars! Leuk om te horen dat het werkt. In principe is die poort op je lokale netwerk ook voor andere (lokaal) toegankelijk gemaakt om data naartoe te versturen maar dat maakt niet uit omdat het lokaal is. Je moet hem natuurlijk NIET in je router zetten bij port forwarding. Alleen het script luistert op deze poort totdat er iets voorbij komt en vergelijkt dan met in dit geval alleen het woord 'bellon'. Ik heb zelf in het script veel meer vergelijkingen staan, bellon, dooropen, sunseton etc,etc. Dus als er ook maar iets op poort 7070 binnenkomt gaat hij het tegen de verschillende keywords aanhouden en bepaal je zelf de gewenste acties. Heatlink scenario: Ik kan me voorstellen dat je een actie kunt maken net zoals bij thermometers, als gemeten temperatuur minder is dan 20 graden dan doe dit of dat...... in jou geval zou dat dan zijn zet een IP schakelaar op ON die dan weer een commando geeft naar het script (via een zelf te verzinnen woord). Als je inderdaad geen oplossing kunt verzinnen voor je specifieke situatie met de heatlink dan kun je natuurlijk wel weer in de minder mooie oplossing terugvallen van het pollen van de homewizard (wederom via een script, wel dan een apart tweede script want dit eerste script staat alleen maar te luisteren en mag daarin natuurlijk niet onderbroken worden voor homewizard uitleesacties). Het pollen kan in geval van jouw scenario omdat je het maar 1x per 15 minuten of misschien zelfs half uur hoeft te doen en de homewizard daar natuurlijk totaal geen hinder van ondervindt. Komt er dus op neer dat je voor realtime sensor info het luister script nodig hebt en voor tragere acties evt polling kunt gebruiken. Succes !
|
|
|
Post by nils on Jan 16, 2015 13:52:42 GMT 1
Bedankt voor je reactie. Ik had in eerste instantie inderdaad een poort die dus wel open stond in mijn router, waardoor ik vanaf mijn externe IP adres zonder wachtwoord mijn schakelaar kon in/uit schakelen (je moest dan wel de poort weten en het commando). Inmiddels heb ik een poort die niet van buitenaf te bereiken is en inderdaad alleen lokaal open staat. Het script herkent nu een aantal "woorden" waar dan de nodige acties op volgen. Werkt erg goed!
Er is inderdaad wel het een en ander mogelijk met acties en thermometers om de heatlink aan te sturen. Je kunt in ieder geval een dag/week programma maken met acties die IP schakelaars aan/uit schakelen naar gelang de gemeten temperatuur (en tijd van de dag). Dit zal in de meeste gevallen goed werken. Het mooiste zou natuurlijk zijn om te schakelen op verschil in gemeten en gewenste temperatuur, maar dan zul je inderdaad moeten gaan pollen om de actuele data op te vragen. Als de polling frequency niet te hoog is, zal het waarschijnlijk weinig problemen geven en anders is de optie om ergens in de nacht de HW te resetten nog een goede oplossing.
Ik ben in ieder geval al weer erg blij hoe het nu werkt, ik heb weer genoeg ideetjes die ik nu kan gaan proberen uit te werken. Dat met die heatlink komt nog wel een keer.
|
|
erikp
Junior Sensor Specialist
Posts: 27
|
Post by erikp on Jan 16, 2015 17:52:18 GMT 1
Mooi dat het ook bij jou goed werkt en succes met het implementeren van al je ideeen, ik ga ook maar is een setje thermostaten bestellen heb ik weer wat om te bouwen (-:
|
|
aliedb
Actief nieuw lid
Posts: 1
|
Post by aliedb on Jan 18, 2015 18:55:28 GMT 1
Leuk draadje !!! Perl is nou weer net niet mijn meest favoriete programmeertaal, maar ik ga er mee bezig op mijn Raspberry Pi. Daar staat ook standaard Perl op. Ik zie trouwens ook nog andere mogelijkheden met de raspberry . . . . Je hoort het nog.
|
|
erikp
Junior Sensor Specialist
Posts: 27
|
Post by erikp on Jan 18, 2015 20:11:53 GMT 1
Kijk daar doen we het voor, nieuwe mogelijkheden/ideeen ...... ??
|
|
|
Post by unconnected on Jan 20, 2015 14:02:18 GMT 1
Gaaf verzonnen dit! Ik heb ook een synology thuis staan, dus dit gaan we eens uitproberen. Ik ben vooral benieuwd in de 'ping my iphone' mogelijkheid. Kan je die ook laten zien? Al het licht uitlaten gaan als ik het huis verlaat bijvoorbeeld, dat lijkt me erg handig.
|
|
erikp
Junior Sensor Specialist
Posts: 27
|
Post by erikp on Jan 20, 2015 19:21:55 GMT 1
Gaaf verzonnen dit! Ik heb ook een synology thuis staan, dus dit gaan we eens uitproberen. Ik ben vooral benieuwd in de 'ping my iphone' mogelijkheid. Kan je die ook laten zien? Al het licht uitlaten gaan als ik het huis verlaat bijvoorbeeld, dat lijkt me erg handig. Absoluut leuk inderdaad er is helaas een kleine maar...... De iPhone blijkt de Wifi in een standby status te gooien waardoor hij niet te pingen is als er een bepaalde tijd geen activiteit is geweest, mijn Android doet dit niet en is dus wel altijd te pingen. Als je zoiets wilt proberen te maken moet je er dus rekening mee houden dat je niet uit kunt gaan van een keer de status check doen, je zult bv pas actie moeten ondernemen als je met redelijke zekerheid kunt zeggen dat je echt weg bent. Dit zal dus nooit een 100% perfecte oplossing zijn helaas maar je kunt een aardig eind komen als je in het script bv elke 5 minuten checkt en dan pas naar bv 3 * 5 minuten geen response (afhankelijk van hoe vaak je zelf de iPhone gebruikt) echt actie onderneemt door de lichten uit te zetten. Ik heb een script toegevoegd waarbij je checkt op sunset en de aanwezigheid van 1 of meer telefoons, als er iemand aanwezig is gaan de lichten aan. In dit script roep ik de subroutine maar 1 keer aan om te kijken of een user thuis is of niet. In geval van een iPhone kan het dus zo zijn dat je thuis bent en het script dit niet ziet..... dan moet je alsnog zelf je lichten aan doen ))-: Uiteraard kun je dit ombouwen naar wat je wilt maar je moet wel altijd zorgen dat het uit of aanzetten maar 1 keer gebeurd, het moet natuurlijk niet zo zijn dat als je weggaat dat hij elke keer opnieuw het commando lichten uit stuurt. Dit kun je doen door een status variabele erbij te zetten zoals in mijn geval bv sunset en te testen of die veranderd is. Ik zal nog even kijken of ik jouw specifieke scenario kan posten. ping1.pl (3.56 KB)
|
|
erikp
Junior Sensor Specialist
Posts: 27
|
Post by erikp on Jan 20, 2015 19:59:27 GMT 1
Gaaf verzonnen dit! Ik heb ook een synology thuis staan, dus dit gaan we eens uitproberen. Ik ben vooral benieuwd in de 'ping my iphone' mogelijkheid. Kan je die ook laten zien? Al het licht uitlaten gaan als ik het huis verlaat bijvoorbeeld, dat lijkt me erg handig. Absoluut leuk inderdaad er is helaas een kleine maar...... De iPhone blijkt de Wifi in een standby status te gooien waardoor hij niet te pingen is als er een bepaalde tijd geen activiteit is geweest, mijn Android doet dit niet en is dus wel altijd te pingen. Als je zoiets wilt proberen te maken moet je er dus rekening mee houden dat je niet uit kunt gaan van een keer de status check doen, je zult bv pas actie moeten ondernemen als je met redelijke zekerheid kunt zeggen dat je echt weg bent. Dit zal dus nooit een 100% perfecte oplossing zijn helaas maar je kunt een aardig eind komen als je in het script bv elke 5 minuten checkt en dan pas naar bv 3 * 5 minuten geen response (afhankelijk van hoe vaak je zelf de iPhone gebruikt) echt actie onderneemt door de lichten uit te zetten. Ik heb een script toegevoegd waarbij je checkt op sunset en de aanwezigheid van 1 of meer telefoons, als er iemand aanwezig is gaan de lichten aan. In dit script roep ik de subroutine maar 1 keer aan om te kijken of een user thuis is of niet. In geval van een iPhone kan het dus zo zijn dat je thuis bent en het script dit niet ziet..... dan moet je alsnog zelf je lichten aan doen ))-: Uiteraard kun je dit ombouwen naar wat je wilt maar je moet wel altijd zorgen dat het uit of aanzetten maar 1 keer gebeurd, het moet natuurlijk niet zo zijn dat als je weggaat dat hij elke keer opnieuw het commando lichten uit stuurt. Dit kun je doen door een status variabele erbij te zetten zoals in mijn geval bv sunset en te testen of die veranderd is. Ik zal nog even kijken of ik jouw specifieke scenario kan posten. Volgens mij moet dit je scenario zijn met in dit geval 1 x testen per 5 minuten en indien 3 x niet succesvol dan gaan de lichten uit. ping2.pl (1.47 KB)
|
|
|
Post by unconnected on Jan 21, 2015 11:23:12 GMT 1
Volgens mij moet dit je scenario zijn met in dit geval 1 x testen per 5 minuten en indien 3 x niet succesvol dan gaan de lichten uit. thanks! ik ga er morgen even mee pielen ik bedacht mij idd later dat de iphone wifi steeds uitschakeld idd :/ maar misschien kan ik een combi maken tussen 'wifi aanwezig' en het feit dat ik een deur heb opengedaan (voordeur / achterdeur). ik ga even een leuk scenario bedenken. gelukkig is mijn perl-kennis nog wel ok dus als ik wat moois geklust heb deel ik het weer met jullie!
|
|