Do It Yourself - Pilight – Raspberry Pi als Low Budget Smart Home Zentrale

Hier können alle Fragen gepostet werden zu der Blog Serie: Do It Yourself Pilight – Raspberry Pi als Low Budget Smart Home Zentrale
Die Installation von Raspbian und der Einstieg in Linux

Do It Yourself – Folge 1 – Raspberry Pi als Low Budget Smart Home Zentrale

Hardware Installation und die Fernsteuerung von Funksteckdosen über das Smartphone

Do It Yourself – Folge 2: Pilight – Raspberry Pi als Low Budget Smart Home Zentrale

Einführung in Pimatic und damit die Automatisierung der Komponenten

Do It Yourself – Folge 3: Pimatic – Raspberry Pi als Low Budget Smart Home Zentrale

Zusätzliche Komponente Temperatur für Pimatic

Do It Yourself – Folge 4: Temperatursensor – Raspberry Pi als Low Budget Zentrale

DIY – Folge 5: Push und Heizungssteuerung – Raspberry Pi Zentrale

Hallo,
Ich habe nun Tutorial 1-3 gelesen und auch versucht die Schritte abzuarbeiten dann könnte ich zum Ende hin leider nicht mehr auf die weboberfläche zugreifen. Aber ok ich habe mir das Image installiert aber komme jetzt immer noch nicht drauf wo könnte der Fehler liegen ?

Hallo djgraphy,
hast du es denn erst einmal nur via LAN Kabel versucht? Funktioniert pilight? mit “ipraspberry:5001”?

Viele Grüße

Daniel

Ok,
Das hat jetzt schonmal funktioniert.
Habe jetzt Tutorial 4 durchgearbeitet wenn ich nun die weboberfläche aufrufe sehe ich aber nur Kaffee an und Kaffee start

Habe die config in pimatic app verändert also die Sachen aus Tutorial 4 eingegeben oder müssen die Sachen in pilight geschrieben werden?

Hallo,
Es jetzt auch am Laufen allerdings wird bei mir über Pi-ip:5001 nur pilight aufgerufen und nicht pimatic wo ich Menüpunkte wie aus dem video auswählen kann.

Ist es allgemein auch möglich die weboberfläche außerhalb des wlan zuerreichen?

Hallo,
wenn 5001 läuft, geht zumindest pilight. pimatic erreichst du via ipdesrasp (ohne port bzw port 80). Pimatic importiert die einstellungen aus pilight und kann dann mit diesen arbeiten (dis automatisierung). Pilight ist an sich wirklich eine reine ansteuerung.
Zugriff von Außen ist natürlich möglich. Such bei google nach portweiterleitung. Du musst deinen Router nur entsprechend einstellen (außer dein Internetanbieter stellt diese Möglichkeit nicht bereit)
pimatic kannst du über ssh mit “sudo service pimatic start” aufrufen. Wenn alles passt, dann sollte es auch via Web zu erreichen sein, wenn nicht, schau dir die logdatei an.

Gruß Daniel

Hallo Daniel,
erstmal Danke für die tolle Tutorialreihe. Leider klappts mit Pimatic bei mir noch nicht so ganz.
Folgende Meldung im Log nach dem ersten Startversuch:

1048 info install sqlite3@3.0.4
1049 verbose unsafe-perm in lifecycle true
1050 info sqlite3@3.0.4 Failed to exec install script
1051 info /home/pimatic-app/node_modules/sqlite3 unbuild
1052 info preuninstall sqlite3@3.0.4
1053 info uninstall sqlite3@3.0.4
1054 verbose true,/home/pimatic-app/node_modules,/home/pimatic-app/node_modules unbuild $
1055 info postuninstall sqlite3@3.0.4
1056 error sqlite3@3.0.4 install: node-pre-gyp install --fallback-to-build
1056 error Exit status 1
1057 error Failed at the sqlite3@3.0.4 install script.
1057 error This is most likely a problem with the sqlite3 package,
1057 error not with npm itself.
1057 error Tell the author that this fails on your system:
1057 error node-pre-gyp install --fallback-to-build
1057 error You can get their info via:
1057 error npm owner ls sqlite3
1057 error There is likely additional logging output above.
1058 error System Linux 3.12.26+
1059 error command “/usr/local/bin/node” “/usr/local/bin/npm” “install” “sqlite3”
1060 error cwd /home/pimatic-app
1061 error node -v v0.10.24
1062 error npm -v 1.3.21
1063 error code ELIFECYCLE
1064 verbose exit [ 1, true ]

Scheinbar will das SQLite Modul nicht so, wie Pimatic will.
Hast du eine Idee für dieses Problem?

Hallo DarkAndy,

versuche mal das Modul manuell zu installieren. Den Fehler kenne ich und er tritt scheinbar manchmal auf.
Zuerst ins pimatic Verzeichnis (kann auch anders sein bei dir):
cd /home/pimatic-app/
dann sqlite via npm installieren:
sudo npm install sqlite3

Hallo Daniel,
danke für die schnelle Antwort. Das manuelle Installieren führt zu folgender Meldung:

<code>npm http GET https://registry.npmjs.org/sqlite3
npm http 304 https://registry.npmjs.org/sqlite3
npm http GET https://registry.npmjs.org/sqlite3/-/sqlite3-3.0.4.tgz
npm http 200 https://registry.npmjs.org/sqlite3/-/sqlite3-3.0.4.tgz
npm http GET https://registry.npmjs.org/nan
npm http 304 https://registry.npmjs.org/nan
npm http GET https://registry.npmjs.org/nan/-/nan-1.4.1.tgz
npm http 200 https://registry.npmjs.org/nan/-/nan-1.4.1.tgz

&gt; sqlite3@3.0.4 install /home/pimatic-app/node_modules/sqlite3
&gt; node-pre-gyp install --fallback-to-build

node-pre-gyp http GET https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.0.4   /node-v11-linux-arm.tar.gz
node-pre-gyp http 403 https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.0.4   /node-v11-linux-arm.tar.gz
node-pre-gyp http 403 status code downloading tarball https://mapbox-node-binary   .s3.amazonaws.com/sqlite3/v3.0.4/node-v11-linux-arm.tar.gz (falling back to sour   ce compile with node-gyp)
gyp ERR! configure error
gyp ERR! stack Error: Can&#039;t find Python executable &quot;python&quot;, you can set the PYT   HON env variable.
gyp ERR! stack     at failNoPython (/usr/local/lib/node_modules/npm/node_modules   /node-gyp/lib/configure.js:101:14)
gyp ERR! stack     at /usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/   configure.js:42:11
gyp ERR! stack     at F (/usr/local/lib/node_modules/npm/node_modules/which/whic   h.js:43:25)
gyp ERR! stack     at E (/usr/local/lib/node_modules/npm/node_modules/which/whic   h.js:46:29)
gyp ERR! stack     at /usr/local/lib/node_modules/npm/node_modules/which/which.j   s:57:16
gyp ERR! stack     at Object.oncomplete (fs.js:107:15)
gyp ERR! System Linux 3.12.26+
gyp ERR! command &quot;/usr/local/bin/node&quot; &quot;/usr/local/lib/node_modules/npm/node_mod   ules/node-gyp/bin/node-gyp.js&quot; &quot;rebuild&quot; &quot;--name=sqlite3&quot; &quot;--configuration=Relea   se&quot; &quot;--module_name=node_sqlite3&quot; &quot;--version=3.0.4&quot; &quot;--major=3&quot; &quot;--patch=4&quot; &quot;--ru   ntime=node&quot; &quot;--node_abi=node-v11&quot; &quot;--platform=linux&quot; &quot;--target_platform=linux&quot; &quot;   --arch=arm&quot; &quot;--target_arch=arm&quot; &quot;--module_main=./lib/sqlite3&quot; &quot;--host=https://ma   pbox-node-binary.s3.amazonaws.com/&quot; &quot;--module_path=/home/pimatic-app/node_module   s/sqlite3/lib/binding/node-v11-linux-arm&quot; &quot;--module=/home/pimatic-app/node_modul   es/sqlite3/lib/binding/node-v11-linux-arm/node_sqlite3.node&quot; &quot;--remote_path=./sq   lite3/v3.0.4/&quot; &quot;--package_name=node-v11-linux-arm.tar.gz&quot; &quot;--staged_tarball=buil   d/stage/sqlite3/v3.0.4/node-v11-linux-arm.tar.gz&quot; &quot;--hosted_path=https://mapbox-   node-binary.s3.amazonaws.com/sqlite3/v3.0.4/&quot; &quot;--hosted_tarball=https://mapbox-n   ode-binary.s3.amazonaws.com/sqlite3/v3.0.4/node-v11-linux-arm.tar.gz&quot;
gyp ERR! cwd /home/pimatic-app/node_modules/sqlite3
gyp ERR! node -v v0.10.24
gyp ERR! node-gyp -v v0.12.1
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute &#039;/usr/local/bin/node /usr/local   /lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js rebuild --name=sqlit   e3 --configuration=Release --module_name=node_sqlite3 --version=3.0.4 --major=3    --patch=4 --runtime=node --node_abi=node-v11 --platform=linux --target_platform=   linux --arch=arm --target_arch=arm --module_main=./lib/sqlite3 --host=https://ma   pbox-node-binary.s3.amazonaws.com/ --module_path=/home/pimatic-app/node_modules/   sqlite3/lib/binding/node-v11-linux-arm --module=/home/pimatic-app/node_modules/s   qlite3/lib/binding/node-v11-linux-arm/node_sqlite3.node --remote_path=./sqlite3/   v3.0.4/ --package_name=node-v11-linux-arm.tar.gz --staged_tarball=build/stage/sq   lite3/v3.0.4/node-v11-linux-arm.tar.gz --hosted_path=https://mapbox-node-binary.   s3.amazonaws.com/sqlite3/v3.0.4/ --hosted_tarball=https://mapbox-node-binary.s3.   amazonaws.com/sqlite3/v3.0.4/node-v11-linux-arm.tar.gz&#039; (1)
node-pre-gyp ERR! stack     at ChildProcess.&lt;anonymous&gt; (/home/pimatic-app/node_   modules/sqlite3/node_modules/node-pre-gyp/lib/util/compile.js:76:29)
node-pre-gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
node-pre-gyp ERR! stack     at maybeClose (child_process.js:735:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_proces   s.js:802:5)
node-pre-gyp ERR! System Linux 3.12.26+
node-pre-gyp ERR! command &quot;node&quot; &quot;/home/pimatic-app/node_modules/sqlite3/node_mo   dules/.bin/node-pre-gyp&quot; &quot;install&quot; &quot;--fallback-to-build&quot;
node-pre-gyp ERR! cwd /home/pimatic-app/node_modules/sqlite3
node-pre-gyp ERR! node -v v0.10.24
node-pre-gyp ERR! node-pre-gyp -v v0.6.1
node-pre-gyp ERR! not ok
Failed to execute &#039;/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modu   les/node-gyp/bin/node-gyp.js rebuild --name=sqlite3 --configuration=Release --mo   dule_name=node_sqlite3 --version=3.0.4 --major=3 --patch=4 --runtime=node --node   _abi=node-v11 --platform=linux --target_platform=linux --arch=arm --target_arch=   arm --module_main=./lib/sqlite3 --host=https://mapbox-node-binary.s3.amazonaws.c   om/ --module_path=/home/pimatic-app/node_modules/sqlite3/lib/binding/node-v11-li   nux-arm --module=/home/pimatic-app/node_modules/sqlite3/lib/binding/node-v11-lin   ux-arm/node_sqlite3.node --remote_path=./sqlite3/v3.0.4/ --package_name=node-v11   -linux-arm.tar.gz --staged_tarball=build/stage/sqlite3/v3.0.4/node-v11-linux-arm   .tar.gz --hosted_path=https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.0.4   / --hosted_tarball=https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.0.4/no   de-v11-linux-arm.tar.gz&#039; (1)
npm ERR! sqlite3@3.0.4 install: &lt;code&gt;node-pre-gyp install --fallback-to-build&lt;/code&gt;
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sqlite3@3.0.4 install script.
npm ERR! This is most likely a problem with the sqlite3 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-pre-gyp install --fallback-to-build
npm ERR! You can get their info via:
npm ERR!     npm owner ls sqlite3
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.12.26+
npm ERR! command &quot;/usr/local/bin/node&quot; &quot;/usr/local/bin/npm&quot; &quot;install&quot; &quot;sqlite3&quot;
npm ERR! cwd /home/pimatic-app
npm ERR! node -v v0.10.24
npm ERR! npm -v 1.3.21
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/pimatic-app/npm-debug.log
npm ERR! not ok code 0
</code>

Hallo zusammen,
danke erstmal für die sehr ausführliche Anleitung!
Ich stecke momentan beim auslesen des Code fest (Gerät: Intertechno; ITR/ITT-1500; Switch+Remote).
Beim “pilight-receive” wird mir kein “systemcode” angezeigt.
Habe schon mehrmals den Sender betätigt und nachgesehen. Es kommt nur folgendes raus:

<code>{
        &quot;code&quot;: {
                &quot;id&quot;: 13932962,
                &quot;unit&quot;: 0,
                &quot;state&quot;: &quot;on&quot;
        },
        &quot;origin&quot;: &quot;receiver&quot;,
        &quot;protocol&quot;: &quot;arctech_switch&quot;,
        &quot;uuid&quot;: &quot;0000-00-00-be-665acf&quot;,
        &quot;repeats&quot;: 1
}
{
        &quot;code&quot;: {
                &quot;id&quot;: 13932962,
                &quot;unit&quot;: 0,
                &quot;state&quot;: &quot;up&quot;
        },
        &quot;origin&quot;: &quot;receiver&quot;,
        &quot;protocol&quot;: &quot;arctech_screen&quot;,
        &quot;uuid&quot;: &quot;0000-00-00-be-665acf&quot;,
        &quot;repeats&quot;: 1
}</code>

Mein Gerät ist auf der pilight Seite gelistet und sollte theoretisch funktionieren. Was mache ich falsch?
Ich bitte um eure Hilfe!
Vielen Dank im Voraus.
fg

@DarkAndy hast du den sqlite ordner vorher auch gelöscht? Er ist in /pimatic-app/ und du kannst es via sudo rm -r ordnername löschen. Ansonsten kann ich mit dem Fahler leider gerade auch recht wenig anfangen. Wenn englisch kein Problem ist, gerne mal beim Entwickler vorbei schauen https://github.com/pimatic/pimatic/issues und fragen
@vincdenic ja, das kann passieren. manche Funkprotokolle sind anders definiert. Du musst nur die ensprechenden Zeilen in die Config übertragen, dann sollte es gehen. Hier ID und Unitcode, wie es aussieht. Beispiele hier: http://wiki.pilight.org/doku.php/arctech_switch

Gruß Daniel

Hallo Daniel,

ich hätte ein aus meiner Sicht auch sehr interessantes DIY Projekt für den Raspberry PI.
Ich habe einen Fibaro HCL und wollte schon immer den Verbrauch der einzelnen Räume direkt nach der Sicherung Messen.
Außer Zangenamperemeter kenne ich keine Alternativen und die sind relative teuer / Kanal.

Daher meine Idee. Sicherlich kennst Du doch Energiezähler, Wasseruhren, Gaszähler, etc… mit der relative einfachen S0-Schnittstelle(nicht S0-Bus ISDN) für DIN Montage.
Die Teile sind recht günstig und genau. Wenn man diese in ein Home Center einbinden kann, wäre genial.

Eigentlich ist es relative simple. Der S0 Ausgang ist typischerweise ein Optokoppler, den an direkt an einen DIO des Raspberry hängen kann.
Die meisten Systeme haben 1000 Pulse / Kwh das sollte sich locker abtasten lassen.

Das Ganze dann:

a.) Entweder in einer Raspberry PI eigenen GUI anzeigen
b.) Per Z-Wave an z.B. an den HCL oder jede andere Z-wave Plattform schicken
c.) Als Virtuelles Device / PlugIn in den HCL / HC2 einbinden.

Ich bin zwar gelernter Elektroniker, aber seit 25 Jahren nur noch im Management einer Halbleiter Firma tätig. Es fehlt mir also an aktueller Praxis sowas umzusetzen.
Hardware würde ich sicherlich hinbekommen, aber Software seitig,…denke ich wird für mich schwierig.

Wenn das hier auf Interesse stößt würde ich mich gerne einem Projektteam anschließen.

Grüße Daniel Burger

PS: Ich meine gelesen zu haben, dass Du einen eigenen Multisensor bauen wolltest ? Wie gesagt, ich bin im Senior Management in einer Halbleiter Firma, ich kann Dir da vielleicht ein paar DemoKit’s für eine LUX Meter / RGB Meter oder Proximity Sensor besorgen :wink:

Hey dburger,

das klingt alles sehr spannend. Ich bin auch alles andere als ein Experte sowohl in Hardware als auch in Software. Die Werte Analog ins Raspberry einzuspielen und dann via IP (Virtual Device) an die HCL oder HC2 zu übertragen ist, meiner Meinung nach, die beste Variante. Aktuell mache ich das so mit einem Temperatursensor, und auch mit dem 433 Mhz Sender. Vielleicht sollte man auch zur Datenaufbereitung einen AVR Nutzen, da müsste ich mich aber wieder einarbeiten. Z-Wave geht leider nicht so einfach, denn die Doku gibt es nur unter NDA via Mitgliedschaft in der Allianz. Wir sollten dazu auf jeden Fall in Kontakt bleiben denn ich bin mir sicher nicht nur du suchst derartige Erweiterungen.

Viele Grüße

Daniel

Hallo Daniel,

inzwischen hab ich im WEB ein paar Projekte gefunden die sowas schon gemacht haben, aber entweder nur halbherzig oder zu teuer / aufwendig.
Deshalb werde ich mich der Sache nun an nehmnen, ein schönes Hardware Design machen und dann sehe ich weiter. Ich hoffe damit mich nicht in ein paar Wochen der Alltag einholt und das Ding aus Mangel an Zeit sich wie ein Kaugummi zieht.

Ich hab nur nen HCL und daher kein LUA Erfahrung, kannst Du mir mal dein Script schicken wie du den Temperatur Sensor einbindest ?
Ich hätte eine CSV file auf ein NAS gelegt und mit der Virtuellen Device des HCL das CSV file ausgelesen.

Gibt es irgendwo etwas Dokumentation wie ich das Virtuelle Device anlegen muss, damit der HCL es als Energie meter erkennt und auch richtig darstellt ?

mfg

Daniel

@DarkAndy

Konntest du dein Problem lösen?
Ich habe genau das selbe Problem.
Denke es liegt an Phyton, weil das als erster Fehler ausgegeben wird
gyp ERR! stack Error: Can’t find Python executable “python”, you can set the PYTHON env variable.

Hat sonst vielleicht jmd eine Lösung?

Grüße

T

(Wartet auf Moderatin)
Hallo dburger,

fibaro dokumentiert sehr viel auf der eigenen Seite. Ich nutze Pimatic auf dem Raspberry. Damit kann man via API den Temperatursensor auslesen (HTTP Request). Wenn du hilfe brauchst oder ich etwas testen soll sag bescheid.
Hier mal der Code (hier aber Luftfeuchte sensor). Fibaro gibt auch die möglichkeit Plugins zu schreiben, das werde ich mir in Zukunft mal ansehen. Damit kann man V-Devices noch genauer klassifizieren, zb als Temperatur oder als Heizkörper etc.

<code>  --[[
  %% properties
  %% globals
  --]]
fibaro:sleep(120000)
RASP = Net.FHttp(&quot;192.168.100.110&quot;) 
RASP:setBasicAuthentication(&quot;daniel&quot;, &quot;hallo123&quot;)
response, status, errorCode = RASP:GET(&#039;http://192.168.100.109/api/variables/pilight-living-temperature.humidity&#039;)

local text = (string.find(response, &quot;value&quot;))
local feucht = (string.sub(response, text+7, text+11))
fibaro:call(23, &quot;setProperty&quot;, &quot;ui.Label1.value&quot;, (feucht))
fibaro:log(&quot;Feuchte: &quot;..feucht)</code>

Hallo Daniel,

ich finde Deinen Blog sehr interessant und auch für Linux-Blinde wie mich, toll beschrieben!
Nun bin ich beim Teil 1 und der WIFI Installation und bekomme beim Einfügen des WIFI Treiber in den Kernel die folgende Fehlermeldung:

root@pi:/home# install -p -m 644 8188eu.ko /lib/modules/3.12.26+/kernel/drivers/net/wireless
root@pi:/home# insmod /lib/modules/3.12.26+/kernel/drivers/net/wireless/8188eu.ko
Error: could not insert module /lib/modules/3.12.26+/kernel/drivers/net/wireless/8188eu.ko: Invalid module format

Die Installation des Treiber scheint nach meinem Empfinden ja funktioniert zuhaben. im /home Verzeichnis finde ich die Datei “8188eu.ok”.
Hast Du bitte einen Tipp für mich?

Vielen Dank und Grüße,
Walter

Hallo Daniel,

bitte vergiß meinen Post von heute Mittag. Ich habe nun die SD Karte neu formatiert und bin die Schritte Deine Anleitung nochmals durchgegangen - nun klappt alles :slight_smile:
Keine Ahnung wieso, aber der Treiber ist nun eingebunden und mein WLAN wird verbunden.

Sorry für die Umstände…

Viele Grüße,
Walter

Hallo Walter,
gib mal “uname -a” in das Terminal ein. Ich vermute, die Kernel Version wurde schon längst einmal aktualisiert und der Treiber passt nicht mehr. Schreib mir einfach mal, was es dir anzeigt.

Viele Grüße

Daniel