Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

IP-Symcon: domoticasoftware met php als scripttaal

Pagina: 1
Acties:

Onderwerpen


  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter

Symcon logo

IP-Symcon is een softwarepakket van Duitse origine waarmee je een groot aantal draadloze en bedrade domoticasystemen kunt verbinderen. Er wordt inmiddels 11 jaar aan het softwarepakket gewerkt door de mannen uit Lübeck. IP-Symcon kan overweg met onder andere FS20, Eaton Xcomfort, z-Wave, ZigBee, knx, dmx, modbus en EnOcean. Een complete lijst vind je hier. Het in Nederland populaire RFXCom wordt niet ondersteund.

Basisfunctionaliteit zoals het koppelen van events aan statuswijzigingen van objecten kan via een grafische interface ingesteld worden. Wat IP-Symcon voor de tweaker leuk maakt is dat je al je apparaten via php-scripts kunt aansturen. Zo'n script kan in de simpelste vorm bestaan uit een aantal commando's die bij het wijzigen van bijvoorbeeld een variabele wordt uitgevoerd, maar je kunt ook een framework bouwen voor je domoticasysteem compleet met dependency injection, service containers, models, controllers, factories, repositories en whatever je nog meer aan programmeer patterns handig vind om mee te werken.

Een alarmsysteem, aanwezigheidssimulatie, verlichting die zich automatisch inschakelt als je van je slaapkamer op weg bent naar de badkamer of een filter tegen onzinnige waarden van een sensor kun je nu helemaal naar eigen wens in elkaar proggen. Een ingebouwde webserver maakt het mogelijk om je domoticasysteem via het web of mobiele apps voor iOS, Android en Appel Watch te bedienen, variabelen te visualiseren en notificaties te ontvangen.


Doelgroep
IP-Symcon is een professioneel automatiseringsplatform dat geschikt is voor zowel thuisgebruikers als integrators die het product willen toepassen in commerciële projecten. De software is degelijk en stabiel. Ik gebruik IP-Symcon nu zo'n drie jaar en mijn ervaring is dat het nooit crasht en ook bijna geen bugs heeft. De betrouwbaarheidsissues die ik in mijn domoticasysteem hebben gehad werden eigenlijk altijd veroorzaakt door de hardware of andere software dan IP-Symcon (zoals Windows).

Als ik de reacties lees in topics over bepaalde open source domoticasoftwareprojecten heb ik de indruk dat de betrouwbaarheid nog wel eens te wensen overlaat of de software zich moeilijk laat configureren. Dat is bij IP-Symcon niet het geval. Waar je wel rekening moet houden is dat je basicly al je logica via php-scripts programmeert. IP-Symcon heeft geen simpele rules-engine waarmee je even snel wat acties bij elkaar klikt. Het scripten in php is echter ook super simpel. Het afvangen van events en deze koppelen aan een script kan wel heel makkelijk vanuit de GUI.

Kun je niets met php dan begin je dus ook weinig in IP-Symcon.


Platformen
IP-Symcon was voorheen alleen beschikbaar voor Windows. Begin 2016 werd de langverwachte versie 4.0 uitgebracht, die ook geschikt is voor Linux (x64 en ARMhf) en macOS.

Naast de software levert Symcon sindskort een kant-en-klare appliance genaamd Symbox. De Symbox is gebaseerd op hardware die vergelijkbaar is met de Raspberry Pi en is geschikt voor montage op een din-rail. De Symbox heeft geen usb. Interfaces naar domoticastandaarden zoals z-wave en knx wordt je geacht aan te sluiten via ethernet. Symcon verkoopt ethernet-interfaces voor 1-Wire, EnOcean, Z-wave en hun eigen IPS-868-systeem.

Persoonlijk vind ik dit een prima keuze. Door ethernet te gebruiken trek je de interface los van de domoticaserver waardoor je veel vrijheid hebt in de plaatsing van de interface (in de meterkast, op de verdieping, in de schuur enz.) en je de mogelijkheid hebt om een high availability setup te bouwen met een failover-server 8) .




Ondersteunde apparaten en protocollen
  • 1-Wire
  • Allnet
  • DigitalStrom
  • Dmx en ArtNet
  • Knx
  • IRTrans (infraroodblaster)
  • LCN
  • Modbus tcp, udp en rtu (bijv. om te communiceren met plc's van Wago, Beckhoff en ABB)
  • Mbus
  • Siemens OZW webserver voor knx
  • Siemens plc's
  • UVR1611
  • Velleman Board
  • W&T
  • EnOcean
  • FHZ1X00PC (interface voor o.a. FS20 draadloze modules)
  • HomeMatic
  • IPS-868
  • Eaton xComfort
  • Z-Wave
  • ELV FS10 weerstations
Apparaten die via een seriële poort of tcp communiceren kunnen verbonden worden door een I/O-instantie toe te voegen en de inkomende data te parsen in een script en vanuit een script commando's naar de I/O-instantie te sturen. De integratie van http api's kan natuurlijk ook vanuit scripts.

IP-Symcon heeft een json-rpc-api om andere apps te laten interfacen met je domoticasysteem. IP-Symcon 4.0 heeft de mogelijkheid via webhooks scripts aan te roepen, zodat je bijvoorbeeld vanuit IFTTT of Geofency makkelijk een script kan aanroepen.

Vanaf versie 4.0 is het mogelijk om PHP modules voor IP-Symcon te schrijven. De module fungeert als een container waarmee je bepaalde functionaliteit of de integratie van een bepaald apparaat makkelijk kunt hergebruiken en via een formulier kunt configureren. Modules worden toegevoegd vanuit git-repositories. Hiermee is ook de deployment van nieuwe code een stuk makkelijker geworden. Je pushed de nieuwe versie van je modules naar je git-repository en kunt de modules daarna via Module Control updaten.

Er zijn onder andere modules beschikbaar voor:
  • BananaPi
  • Elro 433MHz-apparaten via AB600 usb-stick
  • Netatmo weerstation
  • Ubiquity UniFi
  • Xbee
  • Philips Hue
  • MiLight
  • Bose SoundTouch
  • Sonos
  • Pi MusicBox
  • Onkyo av-receivers met lan of rs-232
  • SqueezeBox
  • Yamaha av-receivers
  • Bluetooth aanwezigheidsdetectie via Bluez onder Linux
  • Wunderground

Talen
Er is een Engelstalige versie beschikbaar, hoewel de documentatie nog volledig in het Duits is. Voor hulp kun je terecht op het forum van IP Symcon waar een vrij grote Duitse community actief is. Een beetje kennis van de Duitse taal is dus wel handig.


Versies en prijzen
De software is verkrijgbaar voor prijzen vanaf 99 euro. Daarvoor krijg je de Basic-versie die maximaal 250 variabelen ondersteunt en één WebFront (omgeving voor webinterface of app) heeft. Voor 249 euro heb je de Professional-versie met alle functionaliteit en een beperking van maximaal 1000 variabelen en vijf WebFronts. De Unlimited-versie kost 499 euro.

VersieVariabelenWebfrontsKosten
Basic2501¤ 99,99
Professional10005¤ 249,99
UnlimitedOnbeperktOnbeperkt¤ 499,99

Bekijk alle verschillen op deze pagina.

De Symbox met softwarelicentie kost 350 tot 750 euro afhankelijk van de licentie die je afneemt.

Voor een gemideld huis zul je aan de Professional-versie genoeg hebben. De hoeveelheid variabelen die er per instantie worden gebruikt hangt af van het type apparaat. Een z-wave-apparaat gebruikt vaak wat meer variabelen (maar heeft vaak ook meerdere functies). Een dmx- of modbus-instantie gebruikt maar één variabele. Ga je veel data opslaan, bijvoorbeeld als je weersvoorspellingen via een api binnenhaalt en per uur in een dag opeens 20 variabelen moet opslaan (praktijkvoorbeeld waar ik zelf mee te maken had ;) ) dan kan het opeens snel gaan met je variabelengebruik.


Waarom zou je IP-Symcon willen gebruiken?
  • Stabiele en degelijke software
  • Veel ondersteunde hardware
  • Snel ontwikkelen van custom functionaliteit in php
  • Makkelijk api's verbinden via php-scripts
  • Vrij goede documentatie (weliswaar Duitstalig)
  • Eenvoudig in gebruik als je eenmaal doorhebt hoe het werkt.
  • Multi-platform (IP-Symcon 4.0)

Screenshots
Management console - tree view
Dit is de weergave van de hiërarchische indeling van alle objecten (categorieën, variabelen, instanties, events, media en links).



Management console - message view
Hier zie je wat er gaande is op je systeem. Je kunt hier zelf naartoe loggen in scripts als je bepaalde output in de message view wil laten terugkomen:



Management console - script view
Dit is een view waar je een script kunt bewerken, zoals in dit geval een script om afbeeldingen uit Synology Surveillance Station te trekken (dit script is gebaseerd op iets dat ik van het Domoticz-forum heb gehaald).



Smartphone app
Switches, waarden en subcategorieën in de app:



Temperatuur instellen op circular slider in de app:




Uitproberen?
IP-Symcon kun je uitproberen door de versie voor het gewenste platform te downloaden. De demo-versie heeft de beperking dat de I/O-instanties na een uur ophouden te werken:
https://www.symcon.de/service/ .

Instructies over de installatie onder Linux kun je hier vinden:
https://www.symcon.de/ser...nstallation/installation/

De management console is enkel beschikbaar voor Windows en kan via Wine onder Linux of macOS gedraaid worden. Instructies over de installatie onder macOS vind je hier:
https://www.symcon.de/for...ole-unter-Mac-OS-X-nutzen

Femme wijzigde deze reactie 04-08-2016 13:00 (180%)


  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
Symcon heeft vrijdag de nieuwe versie 3.0 vrijgegeven met de volgende wijzigingen:
quote:
Liste der Änderungen

- Komplett für HTML5-Browser neu entwickelt
- Der integrierte WebFront-Editor ersetzt den unbequemen WebFront-Konfigurator
- Eigene Skins können mit den Skin-Manager erstellt oder fertige direkt aus der Community heruntergeladen werden!
- RGB-Slider haben nun zusätzlich einen HSL-Farbkreis
- Audio-Notificatations über WFC_AudioNotification
- MJPEG-Stream können über das neuen Stream-Mediaobjekt angezeigt werden. Medien
- Graphen-Rohdaten können direkt nach CSV exportieren werden
- Graphen im WebFront können für jede Variable deaktiviert werden (trotz aktiviertem Logging)
- Alle Icons und Grafiken sind für Retina-Displays optimiert.
- Das WebFront sieht nun auf dem iPad3+ und hochauflösenden Display einfach toll aus!
- Lädt schneller - besonders bei langsamen Internetleitungen. Die schicke Ladeanimation versüßt die Wartezeit
- Natives Scrolling auf iOS & Android Geräten
- Zusatz Scrollleisten können für ältere Touchscreens alternativ per Skin aktiviert werden (Download)
- Das Editieren von Text-Boxen nutzt nun das integrierte OSK des Touch-Geräts
- DWD-Wetter benötigt keinen Benutzernamen/Passwort mehr
- Inhaltswechsler kommt nun auch mit sehr vielen Objekten zurecht (z.B. Webcam Archiv Funktion)
- Ereignisse werden nun direkt untereinander inklusive Konfiguration und nächster Ausführung angezeigt
- Die neue JSON-RPC API arbeitet direkt im WebServer ohne kostbare PHP-Threads zu belegen
- Über die neue JSON-RPC API können Sie mit wenigen Handgriffen Daten austauschen. Datenaustausch
- Für alle Technikbegeisterten: Das neue WebFront ist mit Google Dart erstellt. Kein Dojo mehr.

Neue Systeme/Module

- Neu: DMX Splitter unterstützt nun ArtNet (Unicast)
- Neu: LCN untersützt die neuen Module mit 12 Variablen
- Neu: Native JSON-RPC Schnittstelle

Neue Funktionen

- Neu: GZIP-Komprimierung für den WebServer
- Neu: X-Forwarded-For wird im WebServer ausgewertet und an PHP weitergeleitet
- Neu: Netzwerkbibliothek aktualisiert. Behebt hoffentlich Probleme mit POP3/IMAP
- Neu: Silent-Eigenschaft für TIPSWebBrowser um alle Javascript Fehler und Popups zu unterdrücken (Dokumentation: WebBrowser)
De ondersteuning van Art-Net vind ik wel een welkome verbeteringen. Ik heb al een Art-Net-interface om dmx aan te sturen (vooralsnog via Luminair op de iPad en iPhone) en dat werkt betrouwbaar in tegenstelling tot de dmx usb-interface die ik onder IP Symcon heb uitgeprobeerd.

  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
Topicstart uitgebreid met informatie over de ondersteunde hardware en geupdate met actuele informatie over IP-Symcon 4.0 en de Symbox.

  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
Gisteren is eindelijk versie 4.0 uitgebracht met onder andere de volgende verbeteringen:
  • Compleet herschreven van Delphi naar C++ zodat het nu multiplatform is en op Windows, Ubuntu, OS X en Raspberry Pi draait.
  • PHP SDK waarmee de community platformonafhankelijke modules kan ontwikkelen voor IP-Symcon. Inmiddels zijn er zo'n vijftig beschikbaar voor onder andere Sonos, Philip Hue en Netatmo.
  • Nieuw databaseformaat die 70 procent opslagcapaciteit bespaart. De data wordt opgeslagen in csv-formaat zodat deze eenvoudig gemodificeerd kan worden en in andere applicaties geïmporteerd kan worden.
  • Webfront met iconen die de state van een device aangeven (bijv. ander icoon voor licht aan of uit), grafieken die hun view automatisch updaten met live data.
  • De managementconsole werd aangepast aan de stijl van Windows 10 en op diverse punten verbeterd.
  • Symcon Connect maakt het mogelijk om zonder port forwarding en via ssl verbinding te maken tussen de mobiele app en de server.
  • Nieuwe modules voor astronomische events (zoals zonsopgang en -ondergang), kalender, webhooks, 1-wire zonder TMEX-driver, rgb/rgbw voor knx, native ondersteuning van Siemens S7 ethernet, betere z-wave-ondersteuning en ondersteuning van meer EnOcean-apparaten van Eltako.
Meer informatie over de upgrade van 3.4 naar 4.0:
https://www.symcon.de/ser...lation/migration-v34-v40/

  • DexterDee
  • Registratie: november 2004
  • Laatst online: 22:21

DexterDee

I doubt, therefore I might be

Bedankt voor deze update. Ik heb de initiele TS gemist en lees er nu voor het eerst over. Het lijkt best wel een prima platform. Raar dat er niemand in bijna 3 jaar tijd in dit topic heeft gereageerd?

Klik hier om mij een DM te sturen


  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
quote:
DexterDee schreef op donderdag 03 maart 2016 @ 10:13:
Bedankt voor deze update. Ik heb de initiele TS gemist en lees er nu voor het eerst over. Het lijkt best wel een prima platform. Raar dat er niemand in bijna 3 jaar tijd in dit topic heeft gereageerd?
Dat het commerciële software is zal niet helpen. Het is mijn inziens wel makkelijk in gebruik als je een beetje handig bent met php. Het is niet mogelijk om op Blockly-achtige wijze regels te maken. Als er iets gescript moet worden doe je dat via php. Het is wel eenvoudig om een script te koppelen aan een event (bijv. een cyclisch event op basis van tijd of een event als een variabele verandert of een bepaalde waarde aanneemt).

IPS 3.4 draait bij mij thuis super stabiel. Het enige waar ik last van heb is dat mijn Z-wave Plus usb-stick soms niet meer benaderbaar is maar dat is een Windows/usb-probleem. Met de Symcon Z-Wave LAN Gateway heb ik dit probleem niet.

De beta van versie 4.0 draai ik op mijn backupserver onder OS X, momenteel alleen in combinatie met een Symcon 1-Wire LAN Gateway (die werkt niet onder 3.4) om wat temperatuursensoren uit te lezen. Tot nu draait het goed maar hij doet dan ook weinig. Ik ga rustig aan doen met de overstap naar 4.0.

  • ThinkPad
  • Registratie: juni 2005
  • Laatst online: 22:36

ThinkPad

Moderator Duurzame Energie & Domotica

X220

quote:
Femme schreef op donderdag 03 maart 2016 @ 11:06:
[...]
Het enige waar ik last van heb is dat mijn Z-wave Plus usb-stick soms niet meer benaderbaar is maar dat is een Windows/usb-probleem. Met de Symcon Z-Wave LAN Gateway heb ik dit probleem niet.
[...]
Wat wordt er gebruikt voor Z-Wave? Je ziet dat bij pakketten als Domoticz en DomotiGa er OpenZWave wordt gebruikt, wat eigenlijk een gereverse-engineered implementatie van de officiele Z-Wave stack is.

En dat merk je helaas. Ik ben van Domoticz overgestapt naar een Zipato Zipabox omdat de Z-Wave implementatie in Domoticz (of eigenlijk OpenZWave) nogal te wensen overliet. Wallplugs met verbruikmeting die na een reboot van Domoticz ineens 11 kWh aangaven als dagverbruik, terwijl m'n slimme meter maar 3,5 kWh voor de hele woning had geregistreerd voor die dag.

Nu met de Zipato Zipabox gaat dat veel beter, een node werkt gewoon zoals je zou verwachten. Dit omdat ze lid zijn van de Z-Wave alliantie. Ook alle extra gimmicks zoals temperatuurmeting, luxmeting e.d. werken gewoon. Nadeel vind ik wel dat het een gesloten systeem is, met Domoticz kon ik altijd heerlijk knutselen met allerlei scriptjes (Lua / Bash / Python). De event creator van de Zipabox is ook vrij uitgebreid, maar toch was dat scripten ook wel leuk.

Om je aan te sluiten bij de Z-Wave alliantie is peperduur en daarom niet te doen voor opensource projecten zoals Domoticz.

Misschien eens een VM opzetten voor IP-Symcon.

ThinkPad wijzigde deze reactie 09-03-2016 09:25 (42%)

Gas besparen door CV-tuning | Elektriciteit besparen | Tweakblog


  • deWit
  • Registratie: november 2004
  • Laatst online: 14:47

deWit

Niet goed, geld toch kwijt!

Na de aanschaf van mijn PLC ben ik hier nu ook mee aan het knutselen. Het is even een beetje uitvogelen hoe je alles op gang krijgt, maar het lijkt allemaal wel te werken en er is een duitse handleiding die, als je eenmaal door hebt hoe binnen IP Symcon dingen in elkaar zitten, best handig is...

  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
quote:
ThinkPad schreef op zaterdag 05 maart 2016 @ 11:05:
[...]

Wat wordt er gebruikt voor Z-Wave? Je ziet dat bij pakketten als Domoticz en DomotiGa er OpenZWave wordt gebruikt, wat eigenlijk een gereverse-engineered implementatie van de officiele Z-Wave stack is.
Er wordt voor zover ik weet geen OpenZwave gebruikt. Je zou moeten uitproberen of het beter werkt. Ik lees op het forum van Symcon wel wat geklaag over de werking van z-wave in versie 3.4, maar die problemen zouden opgelost moeten zijn in 4.0. Als je ermee wil gaan spelen zou ik toch meteen 4.0 pakken.

OpenZwave heeft ook voordelen vergeleken met de aanpak van IP-Symcon. OpenZwave komt met een complete database aan config parameters van z-wave-apparaten. Die heeft IP-Symcon niet waardoor je telkens de handleiding van het betreffende z-wave-apparaat erbij moet halen of zelf een document met config parameters moet bijhouden om zicht te houden op de mogelijkheden.
quote:
Nu met de Zipato Zipabox gaat dat veel beter, een node werkt gewoon zoals je zou verwachten. Dit omdat ze lid zijn van de Z-Wave alliantie. Ook alle extra gimmicks zoals temperatuurmeting, luxmeting e.d. werken gewoon. Nadeel vind ik wel dat het een gesloten systeem is, met Domoticz kon ik altijd heerlijk knutselen met allerlei scriptjes (Lua / Bash / Python). De event creator van de Zipabox is ook vrij uitgebreid, maar toch was dat scripten ook wel leuk.
In IP-Symcon heb je alle mogelijkheden om te scripten in php en je kunt ook makkelijk werken met apparaten die communiceren via seriële poorten, udp of tcp. Zo kun je ook eenvoudig eigen integraties bouwen. Nu met versie 4.0 kun je die mooi in modules stoppen.

  • deWit
  • Registratie: november 2004
  • Laatst online: 14:47

deWit

Niet goed, geld toch kwijt!

Even een reactie hier op een bericht wat in het PLC topic stond:
quote:
Femme schreef op dinsdag 12 juli 2016 @ 19:37:
[...]


IP-Symcon is inderdaad heel erg gericht op de php-programmeur. Je kunt er veel mee maar alles gaat via scripts en modules. De modules zijn mogelijk sinds IP-Symcon 4.0 die in februari werd uitgebracht. De modules die door de community zijn geschreven zijn momenteel vooral gericht op het integreren van bepaalde apparaten of diensten. Het zou leuk zijn als er ook wat meer modules komen om simpele dingen te doen als een instantie aan of uitzetten als een boolean variabele (bijvoorbeeld de status van een modbus adres) verandert. Dan zou je vanuit een simpel formulier waarin je de input en output selecteert een schakeling kunnen maken.
Femme, zou je wellicht wat van jouw scripts kunnen delen die iets van basisfunctionaliteit laten zien?

  • Nhz
  • Registratie: mei 2011
  • Laatst online: 24-01 10:44

Nhz

Deventer

Jammer dat hier niet meer reacties zijn. Ziet er veelbelovend uit. Ik draai momenteel (ook) op domoticz en heb ook de ervaring dat het zwave verhaal te wensen over laat.

Femme, gebruik jij dit pakket nog steeds? Hoe zijn de ervaringen tot nu toe?

Ik heb een hele tijd naar het Loxone bedrade systeem gekeken, maar ben bang dat dat toch te hoog gegrepen is voor onze renovatie woning. Daarnaast spreekt me het scripten in PHP erg aan.

5200Wp Oost / 5200Wp West


  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
quote:
Nhz schreef op zaterdag 16 juli 2016 @ 05:50:
Jammer dat hier niet meer reacties zijn. Ziet er veelbelovend uit. Ik draai momenteel (ook) op domoticz en heb ook de ervaring dat het zwave verhaal te wensen over laat.

Femme, gebruik jij dit pakket nog steeds? Hoe zijn de ervaringen tot nu toe?
Ja mijn huis draait hier op (nu nog steeds op versie 3.4). Ik ben momenteel bezig om een lichtgewicht gebouwbeheersysteem te maken op basis van IP-Symcon, in eerste instantie gericht op verwarming/koeling met modules die verantwoordelijk zijn voor temperatuurregeling in een ruimte en communicatie van de warmte/koudevraag naar een centrale module die de aanvoertemperatuur regelt en wamtepompbesturingsmodule aanstuurt. Qua hardware moet dit gaan draaien op ARM single board computers zoals een Odroid C2 met decentrale I/O modules die via modbus/tcp of modbus/rtu communiceren. Elke ruimte kan optioneel een ruimtethermostaat krijgen die via modbus/rtu communiceert en bedoeld is om de doeltemperatuur te kunnen instellen.

Ik heb er een soort framework voor gemaakt om de objecten in IP-Symcon (zoals variabelen, instanties en events) ook daadwerkelijk als objecten in je php-code te kunnen gebruiken. In plaats van dat je met een functie zoals IPS_GetEvent($objectId) een array terugkrijgt met de eigenschappen van een event kun je via een object factory een object ophalen en als het een event is kun je er alle eigenschappen van een event mee setten en getten. Is een stuk makkelijker in de omgang met objecten.

De mogelijkheid om nu modules in php te schrijven en via git te installeeen is een enorme verbetering ten opzichte van IPS 3.4 waar je je scripts nog los in de object tree moest plaatsen. Nu bundel je ze in een git repository en kun je ze via Module Control makkelijk deployen en updaten.

IP-Symcon 4.0 heb ik hier nu alleen lokaal op mijn MacBook draaien voor testwerk en op een Odroid C2 waar om waardes van 1-wire sensoren in te lezen via de 1-Wire Ethernet Gateway van Symcon (die wordt niet ondersteund in 3.4). De stabiliteit van IPS 4.0 is uitstekend hier, ik had alleen wat issues met het installeren onder een kale Debian Jessie-afgeleide distributies zoals Armbian en Odrobian. Mogelijk zijn die nu opgelost.
quote:
Ik heb een hele tijd naar het Loxone bedrade systeem gekeken, maar ben bang dat dat toch te hoog gegrepen is voor onze renovatie woning. Daarnaast spreekt me het scripten in PHP erg aan.
Qua programmeerbaarheid heb je in IP-Symcon als php-programmeer wel veel meer vrijheid denk ik.

Wat voor hardware wil je nu gebruiken? Z-wave of wel bedraad?

Acties:
  • 0Henk 'm!

  • Nhz
  • Registratie: mei 2011
  • Laatst online: 24-01 10:44

Nhz

Deventer

Ik ben nog steeds zoekende, maar aangezien we niet in de planning hebben staan om alles opnieuw te gaan bedraden ontkomen we niet echt aan draadloos. Op zich werkt dat ook prima, maar wil daarbij apparatuur op batterijen vermijden. Nu gebruik ik bijvoorbeeld zwave wand schakelaars om een dimmer te besturen. Ik gebruik liever schakelaars welke ik fysiek aan de zwave dimmer aansluit.

Bovenstaande heeft een stuk minder impact op de installatiewerkzaamheden dan wanneer je per schakelaar, lichtpunt, etc terug moet naar de meterkast.

Jouw verhaal over het verwarmingssysteem spreekt me ook erg aan, de oplossing is natuurlijk mooi, maar wat me vooral aanspreekt is de manier waarop je zoiets zelf kan ontwerpen en bouwen.

Nhz wijzigde deze reactie 17-07-2016 08:53 (15%)

5200Wp Oost / 5200Wp West


Acties:
  • 0Henk 'm!

  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
quote:
deWit schreef op woensdag 13 juli 2016 @ 19:44:
Even een reactie hier op een bericht wat in het PLC topic stond:

Femme, zou je wellicht wat van jouw scripts kunnen delen die iets van basisfunctionaliteit laten zien?
Je bent bezig met een Wago-plc las ik in het plc-topic. Hier een voorbeeld script over hoe je met behulp van een pulsdrukker een output op je plc kunt schakelen, waarbij je die output tegelijkertijd ook kunt schakelen met een knopje in een WebFront in IP-Symcon (webinterface of mobiele app).

Hiervoor heb je nodig:

- Een script om de status variabele en de output te setten. Hierin moet je later nog wat waardes van variabelen aanpassen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php

// Object id of boolean status variable
$statusVariableId = 28354 /*[Toggle test\Toggle status]*/;

// Object id of modbus instance that controls the output
$instanceId = 21194 /*[Toggle test\Output]*/;

// Current status of output
$outputStatus = GetValue($statusVariableId);

// Script is executed by trigger event
if (isset($_IPS['EVENT']))
{
    // Toggle status
    $outputStatus = $outputStatus == true ? false : true;
}
// Script is executed by variable action
elseif (isset($_IPS['VARIABLE']))
{
    $outputStatus = $_IPS['VALUE'];
}

SetValue($statusVariableId, $outputStatus);
@ModBus_WriteCoil($instanceId, $outputStatus);

?>

- Een modbus instantie voor de input
- Een modbus instantie voor de output (juiste modbus-adressen heb je al gevonden?)
- Een boolean variabele waarin de status van de output wordt bijgehouden en die je later vanuit de app kunt wijzigen. Ik heb deze in het voorbeeld 'Lamp' genoemd. Als variabeleprofiel selecteer je '~Switch' en als custom action selecteer je het eerder aangemaakte script, zodat dit script wordt uitgevoerd bij het veranderen van de variabele van je WebFront.




- Aan het script voeg je een event toe (rechter muisknop > Add object > Add event). Je kiest voor trigger event en selecteert de 'Value'-variabele (als je die nog niet hernoemt hebt) van de modbus instantie voor de input als variabele. Je laat het event triggeren op een specifieke waarde en kiest dan True als waarde. Dit zorgt ervoor dat het event alleen triggert als de input 'hoog' wordt.

Als je het event als child van het script hebt toegevoegd staat het juiste script dat het event moet uitvoeren al ingevuld.





Zo zouden de benodigde objecten eruit kunnen zien in de tree:



Vervolgens wijzig je de twee variabelen in het script ($statusVariableId en $instanceId) naar de juiste object id's voor respectievelijk de status variabele (die ik 'Lamp' heb genoemd), het trigger event en de modbus instantie van de output.

Het script herkent op basis van de systeemvariabelen $_IPS['EVENT'] en $_IPS['VARIABLE'] of het uitgevoerd wordt door respectievelijk het event of de custom action van de status variabele. In het eerste geval toggelt hij de output van true naar false of andersom en in het tweede geval gebruikt hij de uitkomst van de actie die meegegeven wordt in de systeemvariabele $_IPS['VALUE'] als nieuwe waarde van de output.

Vanuit de app kun je nu de output bedienen door op het knopje bij 'Lamp' te drukken:



Ik heb zelf mijn de object tree ingedeeld op basis van de fysieke locatie van instanties. Alle modbus-instanties van mijn Wago-plc staan bij elkaar in een mapje onder Schakelkast en de 'virtuele outputs' (zoals onze statusvariabele 'Lamp') in een categorie voor de ruimte waar het apparaat zich bevindt dat geschakeld wordt (bijvoorbeeld een lamp).

Zoals je ziet moet je best wat handelingen uitvoeren om een simpel toggle scriptje te maken. Het kan veel makkelijker met een simpele php-module voor een instantie waarmee je simpelweg de input variabel en output instantie aanklikt in een configuratieformulier en de rest vanzelf gaat. Ik moet nog eens een zo'n module maken :) .

  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
quote:
Nhz schreef op zondag 17 juli 2016 @ 08:50:

Jouw verhaal over het verwarmingssysteem spreekt me ook erg aan, de oplossing is natuurlijk mooi, maar wat me vooral aanspreekt is de manier waarop je zoiets zelf kan ontwerpen en bouwen.
Als (php)-programmeur heb je inderdaad erg veel mogelijkheden om zelf functionaliteit te bouwen. Het kost wel tijd maar persoonlijk vind ik het leuke programmeeruitdagingen. Dat je er iets mee bestuurt en slimmer maakt dat effect heeft op de echte wereld maakt het extra leuker.

Qua basisfunctionaliteit zit er buiten de HeatingControl en ShutterControl modules bijna niets in. Het is geen platform voor mensen die even snel wat bij elkaar willen klikken. Als je alles met losse scriptjes en events aan elkaar plakt wordt een grote installatie snel onverzichtelijk en moeilijk beheersbaar. De php-modules kosten wat meer tijd om te maken maar kunnen dit probleem wel oplossen. De functionaliteit die in een module zit kun je makkelijk eindeloos hergebruiken zonder scripts te moeten kopiëren.

  • deWit
  • Registratie: november 2004
  • Laatst online: 14:47

deWit

Niet goed, geld toch kwijt!

quote:
Femme schreef op zondag 17 juli 2016 @ 11:59:

- Een modbus instantie voor de input
- Een modbus instantie voor de output (juiste modbus-adressen heb je al gevonden?)
- Een boolean variabele waarin de status van de output wordt bijgehouden en die je later vanuit de app kunt wijzigen. Ik heb deze in het voorbeeld 'Lamp' genoemd. Als variabeleprofiel selecteer je '~Switch' en als custom action selecteer je het eerder aangemaakte script, zodat dit script wordt uitgevoerd bij het veranderen van de variabele van je WebFront.
Thanks! Ik had na wat stoeien ook al iets vergelijkbaars gemaakt. De modbus instanties voor in en output werken inmiddels prima, en ik had ook al bedacht om een aparte variable voor de output te nemen die o.a. vanuit de webfront te schakelen was. Met een script het e.e.a. regelen is handig.

Ik had er zelf voor gekozen om een script aan de on-change van de modbus input te hangen, maar deze variant is mooier omdat hij direct ook de switch vanaf het web afvangt. Daarnaast draait in jouw geval het script alleen als de knop word ingedrukt, en niet bij het loslaten nogmaals.
quote:
Ik heb zelf mijn de object tree ingedeeld op basis van de fysieke locatie van instanties. Alle modbus-instanties van mijn Wago-plc staan bij elkaar in een mapje onder Schakelkast en de 'virtuele outputs' (zoals onze statusvariabele 'Lamp') in een categorie voor de ruimte waar het apparaat zich bevindt dat geschakeld wordt (bijvoorbeeld een lamp).
Ik had iets vergelijkbaars, het is zeker handig om gebruik te maken van de categorieen om te voorkomen dat het snel onoverzichtelijk is.
quote:
Zoals je ziet moet je best wat handelingen uitvoeren om een simpel toggle scriptje te maken. Het kan veel makkelijker met een simpele php-module voor een instantie waarmee je simpelweg de input variabel en output instantie aanklikt in een configuratieformulier en de rest vanzelf gaat. Ik moet nog eens een zo'n module maken :) .
Ik heb daar al eens naar zitten kijken, an sich zijn in v4 de modules redelijk makkelijk geschreven.
quote:
Als je alles met losse scriptjes en events aan elkaar plakt wordt een grote installatie snel onverzichtelijk en moeilijk beheersbaar. De php-modules kosten wat meer tijd om te maken maar kunnen dit probleem wel oplossen. De functionaliteit die in een module zit kun je makkelijk eindeloos hergebruiken zonder scripts te moeten kopiëren.
Daar ben ik inmiddels al wel achter. Dat is ook voor mij het grote dilemma waar ik mee zit. Aan de ene kant vind ik het fijn om de volledige vrijheid te hebben en erin te kunnen knutselen wat ik wil. Aan de andere kant neig ik naar Loxone omdat het daar simpelweg klik en klaar is en er veel basisfunctionaliteit al in zit. Ik denk dat daar nog een hele grote stap te maken is voor de makers van IP-symcon, simpel de basisfunctionaliteit kunnen implementeren maakt de stap voor heel veel mensen een stuk kleiner.

  • deWit
  • Registratie: november 2004
  • Laatst online: 14:47

deWit

Niet goed, geld toch kwijt!

Nou, de kogel is door de kerk, na een paar weken wat hebben lopen stoeien met IP Symcon ben ik toch om. :+ ik ben toch wel erg onder de indruk van hoe goed sommige dingen werken en hoe goed sommige basisfunctionaliteit die er al in zit wel werkt. Afgelopen weekend dus het een en ander omgezet, een oude RPi opgezocht en daar IP Symcon op gezet met een Z-wave USB Stick, een USB-Serial kabeltje om de slimme meter uit te lezen en wat scripts om het een en ander vanaf de camera te trekken. Dat werkte dusdanig prima (ook met zeer acceptabele belasting voor de Rpi2 trouwens) dat ik ook maar een licentie heb gekocht.

Volgende projectje is de omvormer van de zonnepanelen erin integreren en de Intergas CV ketel erin integreren.

Voorlopig blijft er nog een tweede pi naast draaien met Domoticz, ik heb nog een aantal oude 433 Mhz sensoren die ik niet direct wil vervangen, dat komt keurig binnen via de json-rpc interface. Ik moet nog even kijken of ik de RFxcom rechtstreeks kan draaien vanuit IP Symcon, maar voor nu is dit net zo makkelijk (het kan opzich, maar het is een crime om alle adressen etc voor sensoren er in te zetten terwijl dit net zo snel werkt...)

deWit wijzigde deze reactie 03-08-2016 10:36 (5%)


  • Nhz
  • Registratie: mei 2011
  • Laatst online: 24-01 10:44

Nhz

Deventer

quote:
deWit schreef op woensdag 03 augustus 2016 @ 10:35:
...Dat werkte dusdanig prima (ook met zeer acceptabele belasting voor de Rpi2 trouwens) dat ik ook maar een licentie heb gekocht.
...
Hoe heb je dit getest? Ik zie nergens een demo versie, of stel ik nou een vraag die ik niet moet stellen? :+

5200Wp Oost / 5200Wp West


  • deWit
  • Registratie: november 2004
  • Laatst online: 14:47

deWit

Niet goed, geld toch kwijt!

Ik heb het ook moeten vragen ;) Je kunt de standaard versie van de website downloaden, bij het starten vraagt het geheel om een licentie maar je kunt ook demo aanvinken met als limitatie dat al je I/O instanties na een uur ophouden. Ruim te tijd om te testen en na een reboot heb je weer een nieuw uur om te knutselen.

  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
Leuk dat er eindelijk wat meer gebruikers zijn van IP-Symcon :) . Ik heb de TS ook even bijgewerkt met wat info over IPS 4.0 en de beperkingen van de demo.

  • deWit
  • Registratie: november 2004
  • Laatst online: 14:47

deWit

Niet goed, geld toch kwijt!

Iemand nog een goede suggestie voor het afvangen van een long-press? Ik heb nu een script wat kijkt wanneer het zelf voor het laatst is uitgevoerd wat getriggerd word door een on-change van een input. An sich werkt het, maar het is nogal grof en niet zo netjes. Eigenlijk zou ik het liefste iets triggeren bij het indrukken en op basis van de tijd dat de knop ingedrukt is gaan werken.

  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
quote:
deWit schreef op dinsdag 09 augustus 2016 @ 20:57:
Iemand nog een goede suggestie voor het afvangen van een long-press? Ik heb nu een script wat kijkt wanneer het zelf voor het laatst is uitgevoerd wat getriggerd word door een on-change van een input. An sich werkt het, maar het is nogal grof en niet zo netjes. Eigenlijk zou ik het liefste iets triggeren bij het indrukken en op basis van de tijd dat de knop ingedrukt is gaan werken.
Hierbij een simpele oplossing. Je voert dit script uit op een trigger event, on specific value = true van de variabele die jouw drukknop representeert. Het script pollt elke 25 ms de waarde van de variabele voor een maximale duur van 10 seconden. Als de waarde van de variabel weer false is (drukknop niet meer ingedrukt) stopt hij met pollen en bepaalt ie afhankelijk van de duur of de knop kort of lang werd ingedrukt.

Het script logt het resultaat in de message view.

Je kunt het ook gebruiken om verlichting te dimmen via dmx door bijvoorbeeld bij elke iteratie van de while loop een fade te doen naar een lager of hoger dimniveau.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?

// Max duration in seconds of short press
$maxShortPressTime = 1;

// Polling interval in milliseconds
$pollingInterval = 25;

// Max polling duration in seconds
$maxPollingDuration = 10;

if (isset($_IPS['VARIABLE']))
{
    $startTime = microtime(true);
    $duration = 0;

    while ($duration < $maxPollingDuration && GetValue($_IPS['VARIABLE']) == true)
    {
        IPS_Sleep($pollingInterval);
        $duration = microtime(true) - $startTime;
    }

    $message = "Button press duration " . $duration;
    $message .= $duration <= $maxShortPressTime ? " (short press)" : " (long press)";

    IPS_LogMessage('Button press test', $message);
}

?>

Femme wijzigde deze reactie 10-08-2016 23:01 (5%)


  • deWit
  • Registratie: november 2004
  • Laatst online: 14:47

deWit

Niet goed, geld toch kwijt!

Dat werkt natuurlijk ook. Ik wilde eigenlijk voorkomen om consequent te moeten pollen maar mijn methode met on-change is te grof, daar is het altijd secondes...


Ik heb van de week m'n eerste module in elkaar geklust om m'n slimme meter uit te lezen over een seriële poort. Daar had ik al een scriptje voor draaien, maar om eens te kijken hoe makkelijk het maken was van een module heb ik daar een poging voor gedaan. Conclusie is dat het met een beetje enthousiasme, wat googlen en mijn beperkte programmeerkennis goed te doen is. Met een avondje heb je een relatief simpele module wel in elkaar geklust. Resultaat is te vinden op github

Ik begin er steeds meer lol in te krijgen :+ . Volgende uitdaging is het vinden van een systeem om de logica erin te krijgen. Alles met losse scripts is volgens mij een enorme uitdaging om dat onder controle, gedocumenteerd en inzichtelijk te houden :/ . Overigens lijkt dat wel te zijn wat de klok slaat op het IP Symcon forum...

  • deWit
  • Registratie: november 2004
  • Laatst online: 14:47

deWit

Niet goed, geld toch kwijt!

Vandaag verplicht ge-update naar 4.1 omdat IP Symcon 4.0 niet meer werkt na een update van Jessie op de RPi. Schijnt een bekende bug te zijn, maar an sich is 4.1 inmiddels wel stabiel genoeg...

  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
quote:
deWit schreef op zondag 30 oktober 2016 @ 18:58:
Vandaag verplicht ge-update naar 4.1 omdat IP Symcon 4.0 niet meer werkt na een update van Jessie op de RPi. Schijnt een bekende bug te zijn, maar an sich is 4.1 inmiddels wel stabiel genoeg...
Die fix zorgt ervoor dat IPS 4.1 nu ook goed werkt op een Odroid C2 met Ubuntu 16.04. Onder 4.0 werkte dns resolution niet icm Ubuntu 16.04.

4.1 heeft ook mooie verbetering zoals de mogelijkheid om je zelf geschreven modules via RegisterMessage en MessageSink te subscriben op allerlei berichten over statuswijzigingen van het systeem, zoals het toevoegen of veranderen van objecten of het updaten van de waarde van een variable. Een module kan nu op allerlei veranderingen inhaken zonder dat je events moet aanmaken.

Ik gebruik het o.a. in een module die de temperatuur in een ruimte regelt om te reageren op veranderingen van de temperatuurvariabele van een 1-wire of z-wave instantie.

Femme wijzigde deze reactie 31-10-2016 13:48 (6%)


  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
Inmiddels is RC1 van IP-Symcon 4.1 uit. De veranderingen:

Nieuwe functies
  • PHP 5.6.26 (löst insbesondere das microtime() Speicherleck und enthält offiziell den cURL Crashfix)
  • Z-Wave unterstützt mehr Klassen (SECURITY, COLOR, CENTRAL_SCENE, DOOR_LOCK, USER_CODE, TIME, SWITCH_ALL)
  • Z-Wave zeigt List der Geräteparameter an (Wird über Open Z-Wave DB ermöglicht)
  • Z-Wave hat Möglichkeit die interne WAKE_UP Warteschlange einzusehen
  • Z-Wave optimiert jede Nacht alle Nodes automatisch (zur Zeit im 5 Minuten Abstand)
  • Z-Wave kann die Erreichbarkeit der (auch batteriebetriebenen) Geräte direkt aus dem Konfigurator prüfen
  • Z-Wave Funktion ZW_ConfigurationSetValueEx kann wieder für batteriebetriebene Geräte ausgeführt werden
  • HomeMatic IP (Vollständiger Umbau von Bin-RPC auf XML-RPC)
  • digitalStrom: Unterstützung für App-Taster über Joker Klemmen
  • digitalStrom: Unterstützung für Sensoren an z.B. iSens200
  • digitalStrom: Unterstützung für binäre Eingänge an z.B. Automatisierungsklemmen
  • KNX-Shutter unterstützt weitere Rückmeldeadressen und Stepping für Lamellen
  • KNX-RGB/KNX-RGBW unterstützt weitere Rückmeldeadressen
  • DMX unterstützt 16 Bit Adressen
  • xComfort Dimmaktoren (Neue Gerätegeneration mit speziellen Rückmeldungen wird unterstützt)
  • ModBus Module unterstützt explizite Angabe des Funktionscodes (01, 02, 03, 04, 05, 06, 15, 16)
  • ModBus RTU/TCP Gateway-Instanzen synchronisieren sich korrekt, sofern mehrere an einer I/O Instanz dran sind
  • Unterstützung weiterer Eltako EnOcean Geräte (FKC, FKF, FRW, FTR65DS, FTR65HS, FUTH65D, FZS)
  • Unterstützung von EnOcean EEP F6-10-00
  • LCN unterstützt die Einstellung für 200 Dimmschritte
  • ServerSocket mit ClientIP/ClientPort Adressierung
  • MulticastSocket neu hinzugefügt (erlaubt Empfangen von z.B. UPNP/SSDP)
  • Siemens OZW unterstützt den Typ RadioButton
Management console
  • Upgrade auf neuste Delphi Version (Mit korrekter Unicode Unterstützung)
  • Verbesserter Skripteditor
  • Suchen & Ersetzen wird direkt im Editor angezeigt
  • Besseres Highlighting bei der Suche
  • Code Folding
  • Nach Querverweisen suchen (Im Kontextmenü eines Objekts und im Skript-Editor)
  • Konsistentere Icon-Auswahl
  • Assistent zum Validieren auf UTF-8 Konformität (über Utils Control) (Bitte Settings + Skripte sichern!)
WebFront
  • Login-Seite kann einen Skin laden (über Skin Control einstellbar) (Beispiel auf GitHub)
  • Profile mit Schrittweite werden als Circle Slider (wie in den mobilen Apps) dargestellt
  • Profile mit sehr vielen Aufzählungen werden reduziert und können über einen Dialog eingestellt werden
  • Dialoge für UnixTimestamp, UnixTimestampDate, UnixTimestampTime, sofern Aktionsskript definiert ist
  • [url=https://www.symcon.de/service/dokumentation/modulreferenz/webfront-konfigurator/wfc-opencategory/]WFC_OpenCategory($id);[/ur]
PHP Module
  • Auswahl von Branches im Module Control
  • Anzeige der Repository URL im Module Control
  • Übersetzung von PHP-Module (Beispiel auf GitHub)
  • Dynamische Konfigurationsformulare (Beispiel auf GitHub)
  • Liste der verfügbaren Nachrichten im MessageSink
  • $this->MessageSink($TimeStamp, $SenderID, $Message, $Data); (Beispiel auf GitHub)
  • $this->SetSummary($Summary);
  • $this->RegisterMessage($SenderID, $Message); (Beispiel auf GitHub)
  • $this->UnregisterMessage($SenderID, $Message); (Beispiel auf GitHub)
  • $this->SetBuffer($Name, $Data); (Beispiel auf GitHub)
  • $this->GetBuffer($Name); (Beispiel auf GitHub)
  • $this->SetReceiveDataFilter($RequiredRegexMatch); (Beispiel auf GitHub)
  • $this->SetForwardDataFilter($RequiredRegexMatch);
  • $this->Destroy();
  • MC_ReloadModule($module_control_id, "ModulName"); (Lädt das PHP Modul neu und erstellt auch die Instanzen neu)
Best wel veel nuttige verbeteringen dus van o.a. de z-wave-ondersteuning, modbus, dmx en de mogelijkheden met betrekking tot de ontwikkeling van php modules.

Ondersteuning voor 16-bit dmx-kanalen heb ik zelf nog een bijdrage aan geleverd door een EldoLED driver met 16-bit kleurdiepte aan Symcon GmbH op te sturen zodat ze ermee konden testen ;) .

Zie voor meer info https://www.symcon.de/ser...lation/migration-v40-v41/ .

Femme wijzigde deze reactie 03-11-2016 12:07 (10%)


  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
Ik heb gisteren eindelijk maar eens mijn primaire domoticasysteem overgezet van IP-Symcon 3.4 op een Mac Mini met Windows 10 naar IPS 4.1 RC3 op een Odroid C2 met Ubuntu 16.04. De Mac Mini crashte de afgelopen tijd weer regelmatig (heeft hij eerder last van gehad) en de oorzaak daarvan was lastig te vinden. Ook had ik problemen met de Z-wave.me UZB1 z-wave usb-gateway die na verloop van tijd (vaak meerdere weken) ophield met werken. Hopelijk draait het beter onder Linux. Mijn testomgeving is in ieder geval super stabiel.

Qua prestaties is de C2 ook meer dan snel genoeg. Ik monitor elke vijf seconden de cpu-belasting en die schommelt meestal rond de 0% op alle vier cores :) . Het tien keer per seconde pollen van >100 modbus-adressen kost blijkbaar ook geen noemenswaardige cpu-tijd.

De Linux-versie van IP-Symcon biedt nog geen mogelijkheden om geluid af te spelen out of the box. Dit was snel opgelost door aplay te gebruiken via shell_exec(); Geluid gebruik ik voor de deurbel. Ik heb een klein versterkertje van 20W met een toslink die de speakers in de keuken aanstuurt. Het versterktje hangt nu aan een Hifi Shield Plus voor de Odroid C2.

Femme wijzigde deze reactie 08-11-2016 17:25 (4%)


  • yzf1kr
  • Registratie: november 2005
  • Laatst online: 19:05
Ik twijfel nog een beetje, na een hoop leeswerk en wat testen lijkt me IP-Symcon een perfect stukje software voor wat wil wil.

Mijn PHP kennis is beperkt, maar ik leer snel.

En er zijn veel handige voorbeeldscripts te vinden zoals deze: https://www.symcon.de/for...ple-Zeitschaltuhr-mit-PHP

Maar ik heb een chronisch gebrek aan tijd...... :|

yzf1kr wijzigde deze reactie 04-12-2016 18:18 (25%)

https://www.facebook.com/hausbrandeck


  • deWit
  • Registratie: november 2004
  • Laatst online: 14:47

deWit

Niet goed, geld toch kwijt!

Nu ik IPS een tijdje langer heb draaien wil ik graag alle intelligentie die ik voorheen in Domoticz had draaien graag gaan overzetten. Wat timers, wat beweginsmelders met daaraan acties, simulatie van aanwezigheid, scenes etc. Ik ben al een hele tijd aan het stoeien met wat nu een handige manier is om die intelligentie in IPS te kijken zonder het óf nodeloos ingewikkeld te maken, of een samenraapsel van scripts wat zo ondoorzichtelijk is als wat.

Er lijkt niet echt een standaard syteem of methode te zijn die mensen aanhouden, het IP Symcon forum heeft een aantal zinnige threads waarin wat genoemd word over structuur of logica, maar echt een "hoe zet je dit handig op" overzicht lijkt er niet te zijn. De meerderheid van de mensen lijkt gewoon de boel aan elkaar te haken met scripts.

Femme, hoe heb jij het nu in elkaar gezet, in het verleden meen ik te hebben gelezen dat je per ruimte een roomcontroller had waarin je alles afhandelde. Kun je iets meer vertellen hoe je dat, met name uit structuuroogpunt, hebt opgezet?

  • Femme
  • Registratie: juni 1999
  • Laatst online: 22:07

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
quote:
deWit schreef op zaterdag 7 januari 2017 @ 16:36:
Nu ik IPS een tijdje langer heb draaien wil ik graag alle intelligentie die ik voorheen in Domoticz had draaien graag gaan overzetten. Wat timers, wat beweginsmelders met daaraan acties, simulatie van aanwezigheid, scenes etc. Ik ben al een hele tijd aan het stoeien met wat nu een handige manier is om die intelligentie in IPS te kijken zonder het óf nodeloos ingewikkeld te maken, of een samenraapsel van scripts wat zo ondoorzichtelijk is als wat.

Er lijkt niet echt een standaard syteem of methode te zijn die mensen aanhouden, het IP Symcon forum heeft een aantal zinnige threads waarin wat genoemd word over structuur of logica, maar echt een "hoe zet je dit handig op" overzicht lijkt er niet te zijn. De meerderheid van de mensen lijkt gewoon de boel aan elkaar te haken met scripts.

Femme, hoe heb jij het nu in elkaar gezet, in het verleden meen ik te hebben gelezen dat je per ruimte een roomcontroller had waarin je alles afhandelde. Kun je iets meer vertellen hoe je dat, met name uit structuuroogpunt, hebt opgezet?
Op mijn leven wat makkelijk te maken heb ik een framework gemaakt voor het werken met objecten en modules. Het framework voorziet in o.a. de volgende functionaliteit:
  • Service container die makkelijk toegang biedt tot allerlei diensten (bijv. dmv $serviceContainer->get('ObjectModelFactory')) en de mogelijkheid biedt om services en hun constructor parameters in een json-bestandje te definiëren zodat ik makkelijk nieuwe services kan toevoegen.
  • Class auto loader zodat je niet met de hand bestanden hoeft te includen om een bepaalde class te kunnen gebruiken.
  • Modellen voor alle soorten objecten in IP-Symcon, aanroepbaar via een uniforme methode ($objectModelFactory->getById($objectId)). Dit maakt het een stuk makkelijker om met categorieën, instanties, variabelen, events en links te werken. Ik hoef niet te weten wat de functie is om een naam van een bepaald soort object te krijgen of te veranderen, dat werkt altijd hetzelfde ( $object->getName() of $object->setName($name)). Wat het tevens doet biedt is uniforme methodes om de waarde van een instantie te setten of getten via $object-setVaue() of $object->getValue(), voor zover ik het betreffende type instantie heb geïmplementeerd. IP-Symcon heeft voor elk soort hardware een aparte functie en dat werkt niet handig. Het moet niet uitmaken of ik de waarde van een modbusadres of een z-wave schakelactor wil veranderen.
  • Allerlei classes om het werken met modules te vereenvoudigen. Ik pas grofweg de principes van het model-viewer-controller-pattern toe. Elke module heeft een model dat het datamodel van de module bevat (met methodes om bijvoorbeeld de kamertemperatuur en doeltemperatuur van een room temperature controller op te vragen) en één of meerdere services daaromheen die higher level business logic bevatten, bijvoorbeeld de logica die ervoor zorgt dat een output van een room temperature controller aan gaat als de kamertemperatuur onder de doeltemperatuur zakt. Deze services hebben eventueel ook toegang tot de modelen of services van andere modules.

    Views heb ik nog niet geïmplementeerd maar dit zou het inrichten van een categorie voor de app/WebFront zijn met eventueel de html van htmlBoxes voor het geval de standaard mogelijkheden van IP-Symcon niet voldoen om gegevens en functionaliteit op de gewenste manier toegankelijk te maken.

    Verder zorgt het er o.a. voor dat ik variabeleprofielen centraal in json configuratiebestanden kan beheren en per module variable-identitieten kan definiëren met eigenschappen zoals de naam, het gebruikte variabeleprofiel, de positie, of er een actie aan zit en of de variabele moet loggen. Met behulp van één regel code kan ik de waarde van een variabele met een bepaalde identitiet verkrijgen in het model van een module en dan zorgt de achterliggende code ervoor dat de variabele wordt aangemaakt indien nog niet aanwezig. Als je in en module elke keer dat je een variabele nodig hebt de eigenschappen met de hand moet gaan zitten setten en valideren wordt je snel simpel van de redundante code.
In mijn nieuwe code probeer ik alle herbruikbare functionaliteit in modules te stoppen. Die modules hebben een beperkte verantwoordelijkheid. De room temperature controller heeft bijvoorbeeld maar één uitgang voor een instantie die het warmwaterventiel schakelt. Als er meerdere ventielen geschakeld moeten worden die ieder hun eigen output hebben, dan moet ik er een 'digital output duplicator' module tussen zetten die maximaal acht andere outputs schakelt. Dit kan ik gebruiker voor verwarming maar ook elke andere toepassing waarin ik de status van een instantie willen dupliceren naar andere instanties. Voor de input van de kamertemperatuur geldt hetzelfde, via een ‘variable aggregator’ kan bereken ik het gemiddelde van verschillende input variabelen zodat de room temperature controller die niet zelf hoeft te kunnen.

Het plannen van de doeltemperatuur van de kamer gaat via een eigen module waar je een comfort, nighttime setback en eco-temperaturen kunt instellen via een weekplan kanneer die actief zijn. Deze module wijzigt de doeltemperatuur van de room temperature controller. Dit is een beetje hoe de modules voor verwarming met elkaar samenwerken:



In de object tree ziet het er zo uit:







Het bouwen van modules kost wel veel tijd en ik zit nog steeds bezig met het uitbouwen en refactoren van mijn framework om ervoor te zorgen dat ik zo makkelijk mogelijk nieuwe modules kan bouwen en varianten van bestaande modules kan maken (die generieke interfaces gebruiken).

Op het systeem waarop ik dit aan het opbouwen ben heb ik een aparte categorie-indeling gemaakt voor hardware-instanties en logica-instanties (modules zoals de temperatuurcontroller) en eventueel losse scripts. Op het hoogste niveau zijn de categorieën ingedeeld op basis van de ruimte in het huis.

De webfronts zitten ook in aparte structuren die opgebouwd zijn uit categorieën en links naar variabelen of instanties.
Pagina: 1


Nintendo Switch Google Pixel Sony PlayStation VR Samsung Galaxy S8 Apple iPhone 7 Dishonored 2 Google Android 7.x Watch_Dogs 2

© 1998 - 2017 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True