Category: Fibaro HomeCenter 2

Fibaro LUA Script – Wallplug auto off – automatisch aus

Heute mal ein kleines LUA-script, welches ich zu Hause einsetze um den StandbyVerbrauch (37 W) der angeschlossenen Multimediageräte (TV, Sat-Receiver, BlueRay-Player etc.) nach einer Leerlaufzeit von 4 Minuten auf 0 zu reduzieren !

Genutzt wird das Ganze mit dem HomeCenter 2 und den Wallplugs von Fibaro.

-- @file      	wallplug_auto_off.lua
-- @author    	oliver schmidt
-- @date      	2016-08-18
-- @licence   
-- 		© Oliver Schmidt (tutorials at net-fx2 dot de)
-- 		Unless stated otherwise, all lua-code of this Project is:
--		Licensed under the Create-Commons Attribution-Noncommercial-Share Alike 3.0 Unported 
--		http://creativecommons.org/licenses/by-nc-sa/3.0/


--[[
%% properties
%% autostart
%% globals
--]]

local version = '1.0';
local sleep_value = 60000;          -- SleepValue for while-loop
local sleep_counter = 0;            -- initialize sleep_counter
local low_power = 40;               -- low-power-value  --> turn off device when powerconsumption is lower than specified value (watts)
local wall_plug = 57;               -- fibaro-ID of the desired wallplug 
local set_off_time = 240000;        -- 240 seconds -- 4 minutes

fibaro:debug('Automatische WallplugAbschaltung bei EnergyLevel unter 40 Watt nach 3 Minuten (Ver.' .. version .. ')');

if (fibaro:countScenes() > 1)
  then
 	fibaro:abort();
  fibaro:debug('abort');
end

while true do
     fibaro:debug('SleepCounter: ' ..sleep_counter);
     local wp_power = tonumber(fibaro:getValue(wall_plug,"power"));
	 --fibaro:debug(wp_power);
-- only for debugging
--     if(wp_power > 0) 
--       then fibaro:debug('WallPlug ist eingeschaltet..');
--    		fibaro:debug('Aktueller Verbrauch: '.. wp_power ..' Watt.');
--       else fibaro:debug('Wallplug ist ausgeschaltet');
--     end
     if (wp_power < low_power and wp_power > 0) then
     	sleep_counter = sleep_counter + sleep_value;
     else 
    	-- Zurücksetzen des SleepCounter wenn die angeschlossenen Geräte wieder
    	-- innnerhalb der eingestellten set_off_time eingeschaltet und genutzt werden 
        sleep_counter = 0;
     end
     if(sleep_counter == set_off_time and sleep_counter > 0)
    	then fibaro:debug('WallPlug wird nach ' .. set_off_time/1000/60 .. ' Minuten unter ' .. low_power .. ' \n Watt Verbrauch abgeschaltet.' );
     		 fibaro:call(wall_plug,"turnOff");
    		 sleep_counter = 0;
     end
     fibaro:sleep(sleep_value);
     
end

Über Anregungen oder auch Kommentare freue ich mich wie immer gerne.

Fibaro Home Center 2 – LogDateien extrahieren – Update: V 4.540

Bekanntlichermaßen läuft das Fibaro HC2 auf einem Linux OS.
Doch ohne root Rechte konnte man sehr schwierig die System Logs lesen. Wenn man sich root Rechte verschafft, verfällt jedoch die Hersteller-Garantie.
Bei den Z-Wave- oder HC-Server-Logs ist noch kniffliger, an die kommt man zwar als Entwickler ran, jedoch für den ‚ideal-Standard‘-Benutzer ist das fast unmöglich.

Seit der Beta 4.111 ermöglicht Fibaro den Zugriff auf folgende Log-Dateien via Web-Aufruf den Zugriff:

# Server-Logs

fibaro.HCServer.log
fibaro.installerBatteryMonitor.log
fibaro.ServicesMonitor.log
fibaro.ServiceUpdate.log
fibaro.Scripts.log
fibaro.Zwave.log

# System-Logs

cron
cron.1
cpu.log
dbSize.log
disk.log
dmesg.log
interfaceData.log
lighttpd-access.log
lighttpd-errors.log
logrotate.status
meminfo.log
messages
messages.1
migration.log
netstat.log
ps.log
requestsToServer.log
serialNumber.log
user.log
version.log

Um an diese Log-Dateien zu kommen, muss man einen Logs-File-Dump laden:

http://homecenter2-IP/services/system/logsDump.php

Diesen Log-Dump entschlüsselt man dann folgt:

# entschlüsseln des Log-Dumps
openssl enc -d -aes-256-cbc -in LogsDump.tar.gz -out Logs.tar.gz -k fibaro-hc2
# entpacken des Log-Archivs
tar -xvfz  Logs.tar.gz

Viel Spass beim analysieren der Log-Dateien.

Update: funktioniert auch noch in der aktuellen Version 4.540 !

Quelle: intuitech.de

Z-Way-Server … TypeError: Cannot read property ‚data‘ of undefined – solved


Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Space required after the Public Identifier in /www/htdocs/w006f9ae/sub/wp/wordpress/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 66

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w006f9ae/sub/wp/wordpress/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 66

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w006f9ae/sub/wp/wordpress/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 66

Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SystemLiteral " or ' expected in /www/htdocs/w006f9ae/sub/wp/wordpress/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 66

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w006f9ae/sub/wp/wordpress/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 66

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w006f9ae/sub/wp/wordpress/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 66

Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SYSTEM or PUBLIC, the URI is missing in /www/htdocs/w006f9ae/sub/wp/wordpress/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 66

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w006f9ae/sub/wp/wordpress/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 66

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w006f9ae/sub/wp/wordpress/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 66

Moin zusammen,

heute mal ein kleines Tutorial, wie man das Einbinden von Fibaro RollladenSchaltern FGRM-222 in der WebUI des Z-Way-Servers ( ZWave.me ) erfolgreich durchführt, wenn die Firmware 22.22 auf dem kleinen Autor ausgespielt ist und man mit dem HTTP-API-Aufruf folgende unschöne Fehlermeldung im Browser erhält:

TypeError: Cannot read property 'data' of undefined

Für alle die vor dem gleichen Problem stehen, hier folgende Lösung:

Ausgangslage:

– erfolgreich in eigene Netzwerk eingebundener ZWave-Aktor von Fibaro (FGRM-222 Firmware 22.22) im Z-Way-Server von ZWAVE.me (Controller ist entweder ein RazBerry-Board oder ZME_UZB1 USB-Stick )

– keine Anzeige eines Sliders wie im folgenden Screenshot:

no Slider on the right side

-> so wie im nachfolgenden Bild sollte es aussehen:

viola, slider present ;)

 

Lösung:

Teil 1:

Hierbei ist es von elementarer Wichtigkeit, dass alle Geräte (Roller Shutter Autoren) für die dieses Tutorial angewendet werden soll, vorher kalibriert worden sind !!! 

Zur Lösung dieses Problems müssen wir uns ins Dateisystem des RaspBerry PI begeben. Ich mache das am liebsten mit TextWrangler ( beliebter freier Editor für Mac OS X). Hier kann ich die Dateien direkt vom FTP-Server holen und bearbeiten. Ab diesem Punkt lass ich die Bilder für sich sprechen:

ZielVerzeichnis auf dem RaspBerry PI:      /opt/z-way-server/config/zddx/

Die XML-Datei %-DeviceData.xml enthält die MetaDaten aller in euer ZWave-Netzwerk eingebundenen Geräte.    ( Dateiname bestehend aus: <eurer HomeID>-DeviceData.xml )

Wichtig: Bevor ihr irgendwelche Änderungen an dieser Datei vornehmt, ERSTELLT vorher IMMER eine SICHERUNG !!!  

Bildschirmfoto 2016-01-28 um 23.11.00

geöffnete XML-Datei

Bildschirmfoto 2016-01-28 um 23.14.05

  • ein Collapse Top-Level Folds lässt die komplette Datei etwas übersichtlicher Aussehen (Gruppieren und Zusammenklappen auf NodeEbene)
  • so behält man gut die Übersicht

Bildschirmfoto 2016-01-28 um 23.16.05

  • wir schauen uns jetzt MetaDaten der Nodes 12 und 13 mal genauer an
  • NodeID 12 ist noch ohne Slider und NodeID 13 hat schon einen (da neuere Firmwareversion des Autors ;/ )

Bildschirmfoto 2016-01-28 um 23.32.24

  •   kopiert den kompletten Block von NodeID 13 der zwischen den INSTANCE-Tags steht und fügt ihn in ein leeres Dokument ein

Bildschirmfoto 2016-01-28 um 23.35.42

  • hier sollten dann alle Command-Classes von NodeID 13 zu sehen sein.

Bildschirmfoto 2016-01-28 um 23.37.55

  • alle Vorkommen von devices.13 durch devices.12 ersetzen

Bildschirmfoto 2016-01-28 um 23.43.44

  • sollte danach ungefähr so aussehen
  • als nächstes kopieren wir den geänderten Inhalt und ersetzen in der vorher GESICHERTEN ORIGINAL-VERSION den Inhalt zwischen den INSTANCES-Tags (ACHTUNG) von DEVICE-ID 12 !!
  • Speichern und Upload auf dem RaspBerry PI nicht vergessen

Bildschirmfoto 2016-01-28 um 23.47.14

  • damit wäre der Bearbeitungsteil beendet

Teil 2:

  • Neustart des Z-Way-Servers auf dem RaspBerry PI
sudo /etc/init.d/z-way-server restart
  • Neuanmeldung in der WebUI des Z-Way-Servers  ( elementar wichtig, sonst funktioniert das Nachfolgende Procedere nicht und ihr müsst Teil1 nochmals von vorn durcharbeiten ! )
  • Diese beiden URL’s nacheinander im Browser ausführen.  (Eine Anmeldung im WebInterface muss vorher erfolgt sein ! )
    Das ‚X‘  durch die Node-ID des Gerätes ersetzen. Im BeispielFall wäre dies jetzt die ID 12.
http://<raspberrypi-ip>:8083/JS/Run/zway.devices[X].SwitchMultilevel.data.supported=true
#Response im Browser:   true

http://<raspberrypi-ip>:8083/JS/Run/zway.devices.SaveData()
#Response im Browser:   null

 

Jetzt in der Expert-UI ein ‚Update alles‘ durchführen und die Darstellung ändert sich wie folgt:

Bildschirmfoto 2016-01-29 um 00.03.31

Sollte sich bei Euch auch die Änderung in der WebUI entsprechend geändert haben, dann habt ihr alles richtig gemacht, Glückwunsch.

Wenn nicht, postet es hier und es euch wird geholfen werden 😉

Oliver


Disclaimer !

Ich übernehme keinerlei Verantwortung und Haftung für Schäden oder Datenverluste die durch Benutzung dieser Anleitung entstehen oder entstehen könnten. Die Umsetzung des Gelesenen erfolgt auf eigene Gefahr und Verantwortung!