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

Hallo zusammen,

heute habe ich es endlich geschafft, auch pimatic ohne Fehlermeldungen zu installieren. Wenn ich nun den Service per “sudo service pimatic start” starte, kommt auch brav die Meldung “Started”, jedoch kann ich zur “IP-Adresse:8080” keine Verbindung
im Brwoser aufbauen. Der Browser zeigt mir nur an, dass die Verbindung nicht möglich ist.
Überprüfe ich anschließend den Status des Services, bekommen ich die Meldung “Pidfile exists, but process is dead.”.
Was kann ich noch versuchen, damit pimatic läuft?

Vielen Dank und Grüße,
Walter

Hallo Daniel,

ich bin gerade zum ersten Mal dabei einen Raspberry Pi B+ zu installieren.
Zum Testen bin ich beim Teil 1 und der WIFI Installation und bekomme beim Einfügen des WIFI Treiber in den Kernel die selbe Fehlermeldung wie WalterW:

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

Jetzt habe ich festgestellt dass ich nur das Verzeichnis 3.18.5+ unter modules habe.
Aber auch wenn ich es dahinein installieren will kommt: Invalid module Format.

Hast Du einen guten Tipp für mich?

Vielen Dank und Grüße,
Werner

Hallo ApfelW, hallo Daniel,

Ich gebe jetzt mal meinen Senf dazu:-)
@ApfelW, ich vermute, du hast den Windows Installer “raspbian-ua-netinstall-V1.0.6” verwendet. Da ich meinen PI schon ca. 15 mal neu installiert hatte,
denke ich, dass die Fehlermeldung mit dem Installer Paket zusammen hängt.
Versuche bitte mal die V1.0.5 - mit der hast es zumindest bei meinem PI B+ bis jetzt immer geklappt.

@Daniel, bitte verbessere mich wenn ich falsch liege. Denke halt, da der Installer nach Deinen Blog erschienen ist, enthält er andere Pakete.

Viele Grüße,
Walter

Hallo ihr beiden,
erstmal @walterw: Zu deinem Problem oben schau dir mal das logfile zu pimatic an. das liegt unter /pimatic-app/pimatic-daemon.log oder so etwas. Kannst du z.B ein 2. terminal aufmachen und dort via tail -f pimatic-daemon.log verfolgen.
Zu der Installer geschichte: Ich bin zu dem Schluss gekommen, dass man mit dem raspian image wohl besser fährt. Das WLAN wird bei diesem und auch bei anderen sticks immer “variabel” bleiben, da die treiber installiert werden und auf die kernel version passen müssen.

Es gibt bei diesem wlan stick einen lichtblick, denn der treiber läuft auf dem raspberry 2 (möglicherweise auch 1) mit dem neusten image mit onboard treibern. man braucht dann nur noch die firmware einmalig installieren und es geht nicht bei jedem update alles “kaputt”.
Firmware für den tp-link stick übrigens via
sudo wget https://github.com/lwfinger/rtl8188eu/raw/c83976d1dfb4793893158461430261562b3a5bf0/rtl8188eufw.bin -O /lib/firmware/rtlwifi/rtl8188eufw.bin
@ApfelW Das oben hilft dir vielleicht auch weiter. ansonsten brauchst du immer den passenden treiber aus dem Forum oben zur kernel version. Die kernelversion zeigt er dir mit uname -a im terminal.

Viele Infos zum Montag, ich weiß.
Ich hoffe ich konnte euch helfen

Gruß Daniel

Hallo zusammen,
ich habe eben gesehen, das da wohl kein Anhang vorhanden ist. Dann versuche ich das jetzt noch mal. Wäre schön, wenn ich da eine Hilfestellung erhalten könnte.

Mfg
Manfred

Hallo Manfred,
ich sehe du hast irgendwo einen fehler in der Piamtic.config gemacht. Entweder mal hier hochladen oder irgendwo bei pastebin dann mit link. Ich schaue es mir mal an.

Grüße

Hallo Daniel,

das pimatic-daemon.log File habe ich mir angesehen, jedoch verstehe ich nichts davon, was da drin steht. Es sind ein paar Einträge “20:35:05.343 [pimatic] error:>Expecting ‘EOF’, ‘}’, ‘:’, ‘,’, ‘]’, got ‘STRING’
20” eingetragen.
Soll ich es nochmal mit einer Neuinstallation des PI versuchen? Wenn ja, welches Image meintest Du bzgl. den WLAN Treibern?
Das Logfile lege ich hier mal mit bei, vielleicht hast Du ja einen Tipp für mich, was ich noch versuchen kann.

Vielen Dank und Grüße,
Walter

Verfolge das Thema Raspberry Pi und Z-Wave schon eine Weile, habe erfolgreich auch pilight und pimatic installiert und konnte bereits einige Ereignisse erfassen. Nun zu meiner Frage:

Gibt es die Möglichkeit handelsübliche Funk-Thermometer in Pilight/Pimatic zu integrieren? Welchen Funkempfänger brauche ich für den Pi (geht der aus dem Tutorial?). Hat jemand dies schon realisiert?

Grüße
Daniel

Hallo Daniel,

das mit dem WLAN-Treiber hat geklappt.
Vielen Dank.
Jetzt kann es ja bald mit Pimatic/Pilight weitergehen.

Gruß Werner

Hallo Daniel,
Danke für Deine Reaktion. Ich habe bereits 2mal versucht, meine config.json hochzuladen, scheint irgendwie nicht zu klappen. Ist aber auch nicht so tragisch, das Problem habe ich in der zwischenzeit gelöst.

Nun gibt es aber noch ein anderes Problem, wo ich Hilfe gebrauchen könnte. Ich kann pimatic nicht als deamon starten. Pilight geht als deamon ohne irgendwelche Besonderheiten. Aber der pimatic deamon meldet immer:pi@raspberrypi /home/pimatic-app $ sudo service pimatic start

module.js:340
throw err;
^
Error: Cannot find module ‘./coffee-cache.js’
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/usr/bin/pimatic.js:3:1)
at Module._compile (module.js:456:26)
at Object.Module._extensions…js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
pi@raspberrypi /home/pimatic-app $

Wenn ich an der gleichen Stelle dann eingebe:
sudo node_modules/pimatic/pimatic.js

dann kann ich sehen, wie die Module gestartet werden und ich kann über WegGui zugreifen (nachdem die Meldung erschien listening for http-request on port 80)

Mir scheint da etwas mit einem Pfad nicht zu stimmen, finde aber nicht, was.
Hoffentlich hast Du einen Tip
Danke
Manfred

Hallo Daniel,

Erfolgsmeldung :slight_smile: pilight und pimatic laufen nun endlich bei mir. Danke an alle hier, die mich dabei unterstützt haben!
Vermutlich war ich zu ungeduldig und hatte immer nach dem Start von pimatic nicht lange genug auf das Update gewartet.
Nun möchte ich für meine Eigenbau-Funklampen ein neues Protokoll in pilight anlegen. Eine gute Beschreibung dafür habe ich gefunden - nur das Verzeichnis “libs/protocols” finde ich nicht.
Kannst Du mir evtl. sagen, wo genau ich es finden kann?

Vielen Dank und Grüße,
Walter

Hallo zusammen,

ich bin die Do it Yourself Anleitung durchgegangen um meine Funksteckdosen mit Pilight zu steuern. Die Steckdosen sind vom Aldi.
Soweit so gut… Die WEB-Gui funktioniert und auch der pilight-receive funktioniert denn ich bekomme jedemenge Protokolle angezeigt und jetzt kommt glaube ich auch schon mein Problem.

Hier die Ausgaben aus dem pilight-receive:

{
        "code": {
                "id": 0,
                "temperature": 0
        },
        "origin": "receiver",
        "protocol": "alecto_wsd17",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": "F0",
                "unit": 0,
                "state": "off"
        },
        "origin": "receiver",
        "protocol": "rev2_switch",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": -6777,
                "humidity": 0,
                "battery": 1,
                "channel": 1
        },
        "origin": "receiver",
        "protocol": "tfa",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": -6777,
                "humidity": 0,
                "battery": 1,
                "channel": 1
        },
        "origin": "receiver",
        "protocol": "tfa",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "systemcode": 15,
                "unitcode": 15,
                "state": "on"
        },
        "origin": "receiver",
        "protocol": "home_easy_old",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "systemcode": 0,
                "unitcode": 0,
                "state": "on"
        },
        "origin": "receiver",
        "protocol": "elro_he",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": "F0",
                "unit": 0,
                "state": "off"
        },
        "origin": "receiver",
        "protocol": "rev2_switch",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": -6777,
                "humidity": 0,
                "battery": 1,
                "channel": 1
        },
        "origin": "receiver",
        "protocol": "tfa",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": "F0",
                "unit": 0,
                "state": "off"
        },
        "origin": "receiver",
        "protocol": "rev2_switch",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": -6777,
                "humidity": 0,
                "battery": 1,
                "channel": 1
        },
        "origin": "receiver",
        "protocol": "tfa",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": "F0",
                "unit": 0,
                "state": "off"
        },
        "origin": "receiver",
        "protocol": "rev2_switch",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": -6777,
                "humidity": 0,
                "battery": 1,
                "channel": 1
        },
        "origin": "receiver",
        "protocol": "tfa",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": -6777,
                "humidity": 0,
                "battery": 1,
                "channel": 1
        },
        "origin": "receiver",
        "protocol": "tfa",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": 0,
                "humidity": 0,
                "battery": 0
        },
        "origin": "receiver",
        "protocol": "teknihall",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": 0
        },
        "origin": "receiver",
        "protocol": "alecto_wsd17",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": "F0",
                "unit": 0,
                "state": "off"
        },
        "origin": "receiver",
        "protocol": "clarus_switch",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": -6777,
                "humidity": 0,
                "battery": 1,
                "channel": 1
        },
        "origin": "receiver",
        "protocol": "tfa",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": -6777,
                "humidity": 0,
                "battery": 1,
                "channel": 1
        },
        "origin": "receiver",
        "protocol": "tfa",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": "F0",
                "unit": 0,
                "state": "off"
        },
        "origin": "receiver",
        "protocol": "rev2_switch",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": -6777,
                "humidity": 0,
                "battery": 1,
                "channel": 1
        },
        "origin": "receiver",
        "protocol": "tfa",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": -6777,
                "humidity": 0,
                "battery": 1,
                "channel": 1
        },
        "origin": "receiver",
        "protocol": "tfa",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": 0,
                "temperature": -6777,
                "humidity": 0,
                "battery": 1,
                "channel": 1
        },
        "origin": "receiver",
        "protocol": "tfa",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": "F0",
                "unit": 0,
                "state": "off"
        },
        "origin": "receiver",
        "protocol": "rev2_switch",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}
{
        "code": {
                "id": "F0",
                "unit": 0,
                "state": "off"
        },
        "origin": "receiver",
        "protocol": "clarus_switch",
        "uuid": "0000-00-00-55-a88da1",
        "repeats": 1
}

so, jetzt habe ich mir einen Code rausgesucht und ihn in die config.json eingetragen:

{
“living”: {
“name”: “Living”,
“switch”: {
“name”: “Switch”,
“protocol”: [ “clarus_switch” ],
“id”: [{
“id”: “A2”,
“unit”: 10
}],
“state”: “off”
}
}
}

dann starte ich den service pilight start und nehme mir mein Tab und verbinde mich. Aber es passiert nichts. Ich kann den On/Off schalter bewegen wie ich will but nothing happens.
ko
Was ich auch nicht verstehen, ist die hardware.json. Ich habe gelesen, das man das Pinmapping konfigurieren soll was ich auch getan habe. Der Standarteintrag scheint ja für sender 0 und receiver 1 zu sein. Ich habe den Sender am Raspi an Pin17 und den Receiver auf Pin 18. Müssen die beiden Werte da eingetragen werden? Denn wenn ich das tue funktioniert pilight-receive nicht mehr.

Was mache ich falsch?

Grüße

Hallo Daniel,

meine Frage bzgl. dem Verzeichnis “/libs/protocols” hat sich erledigt. Wer lesen kann, ist halt doch eindeutig im Vorteil :wink:
Ich musste nur noch das Development Paket wie unter: http://www.pilight.org/getting-started/installation/ beschrieben, installieren.
Nun werde ich mich daran machen, ein neues Protokoll für meine Lampen zu erstellen - mal sehen, ob das so klappt, wie ich es mir vorstelle.

Viele Grüße,
Walter

Hallo!

bin schon seit 4 Tagen dabei pimatic mit pilight zu verschmelzen leider gelingt es mir einfach nicht.

Auf der pimatic Weboberfläche kann ich keine Funk Steckdosen hinzufügen obwohl ich auf der pilight config sie eingetragen habe und mittels pilight Weboberfläche auch schalten kann.

Ich hoffe ihr könnt mir weiterhelfen bin schon am verzweifeln.

Danke in voraus!
lg
Dery

Hallo noch mal,
es geht noch um die Bluetooth Erkennung.
Das Problem ist das meine Frau kein Wlan fähiges Handy hat und auch keines will.
Mein Ansatz wäre jetzt mit hcitool oder ähnl. eine Log datei erstellen und dann mit
Pimatic-Log die Werte auslesen und als Erkennung nutzen.

Hat vieleicht noch jemand einen Anstoss in eine andere Richtung ?

Mit besten Grüßen
Docker

Hey @ all,
ich versuche mal ein paar Sachen hier abzuarbeiten:
@dk00000: Funkthermostate Funktionieren auch mit Pilight. Also je nach dem was du meinst eignen sich die MAX! Thermostate sehr gut. Es gibt auch ein Wandthermostat, welches eingebunden werden kann. Ich werde die Tage ein Tutorial über Fibaro mit MAX! schreiben, dort werde ich versuchen den Großteil zu erklären. MAX! bietet meiner Meinung nach die beste Preis/Leistung.

@Manfred: Versuche noch einmal die komplette Prozedur des Autostarts zu wiederholen, welche auf der Pimatic Seite dokumentiert ist. Ich kann leider mit dem Fehler erst einmal nichts anfangen, aber um den daemon zu testen kannst du auch einmal folgendes Probieren: sudo node_modules/pimatic/pimatic.js Das Startet pimatic als daemon ohne die Globale Umgebung. Sollte das Gehen, dann Wie gesagt noch einmal Pimatic ab hier Konfigurieren und Global machen: http://pimatic.org/guide/getting-started/running/

@walterw: Schreib gern deine Erfahrungen über das Protokoll erstellen hier nieder, das habe ich selbst auch noch nicht gemacht. Klingt sehr interessant und du bist ja schon recht weit gekommen!

@LittleSwabi: Erst einmal zum Pin-Map. Die Datei an sich kannst du änden, wenn du es anders verkabelst. Du must nur aufpassen, dass nach wiringPi beschriftet wird, nicht nach GPIO Pins. Eine Grafik findest du im tutorial GRAFIK Wegen deiner Codes kannst du nur Probieren. Wenn Pilight Startet, hast du das Format scheinbar richtig eingehalten aber deine Ausgabe zeigt nicht eindeutig welcher schalter bzw welches protokoll stimmen. Am besten so nah wie möglich heran und testen. Du kannst auch mit pilight-send arbeiten, dann musst du nicht immer die Config ändern und neu starten. Die Doku dazu hier Pilight send

@dery: ist denn pilight als plugin bei pimatic installiert? Siehe HIER.
Es sollte auch ssdp eingestellt sein, das sieht in der config.json so aus:

{ 
   "plugin": "pilight",
   "ssdp": true
}

@Docker: Ja, der Ansatz ist gut. vielleicht findest du auch ein kleines Programm welches du via pimatic shell execute ausführen kannst und welches dir true oder false zurück gibt. Probiert habe ich es nocht nicht. Vielleicht gibt es auch interesse bei den Pimatic entwicklern für so eine funktion ein Plugin zu schreiben. Wenn du gut englisch kannst, dann schreib dort ins forum. Die leute sind eigentlich sehr hilfsbereit!

Ich hoffe, das hilft erst einmal wieder dem Großteil hier weiter :wink:

Viele Grüße und ein schönes Wochenende!

Daniel

Hallo Daniel,

klar, das ist versprochen :slight_smile: Heute Nachmittag las ich mir die Anleitung zur Protokollerstellung mal durch, doch im Moment verstehe ich nur Bahnhof.
Werde mal ne Nacht drüber schlafen und mir das morgen nochmal genau durchlesen.

Viele Grüße,
Walter

Hi danielboe,
danke für die Antwort, allerdings meinte ich Funkwetterstationen, nicht Funkthermostate. Wie ich inzwischen aber auf pilight.org (supported devices Liste im Wiki) und in anderen Quellen gelesen habe, ist es mit etwas Glück kein Problem sich in die Kommunikation zwischen Wetterbasisstation und Außensensor einzuklinken. Habe meinen 433MHZ Empfänger nun auch fertig, musste aber feststelllen, dass meine Wetterstation auf 868MHZ arbeitet :-/
Nun such ich mir erstmal ne neue Wetterstation :slight_smile:

Gruß
dk00000

Hallo Daniel,

vielen Dank erstmal für dein ausführliches Tutorial. Da sich in Pilight 6 wohl einiges geändert hat, habe ich mich als blutiger Linuxanfänger durch gewurschtelt und tatsächliche eine funktionierende config.json zu Stande gebracht :slight_smile: . Nachdem ich mit pilight-receive den Code der Funkfernbedienung meiner Alarmanlage ausgelesen habe und ihn in die config.json eingearbeitet habe, sollte es eigentlich funktionieren. Leider kommt nichts bei der Alarmanlage an.
Nun habe ich parallel zur Weboberfläche mal pilight-receive ausgeführt. Eigentlich sollte er mir ja anzeigen wenn etwas empfangen wird. Das Ergebnis sieht wie folgt aus:
{
“origin”: “sender”,
“protocol”: “clarus_switch”,
“message”: {
“id”: “B9”,
“unit”: 2,
“state”: “on”
},
“repeat”: 1,
“uuid”: “0000-00-00-6f-d84614”
}
{
“origin”: “sender”,
“protocol”: “clarus_switch”,
“message”: {
“id”: “B9”,
“unit”: 2,
“state”: “off”
},
“repeat”: 1,
“uuid”: “0000-00-00-6f-d84614”
}
Da origin: sender auch bei ausgesteckten Modul, erscheint gehe ich mal davon aus, das er das Senden protokolliert, aber da keine Befehle mit origin: receiver erscheinen kommt wohl nichts an.(?)
Daher folgende Fragen:

  1. Kann man das Senden mit dem eigenen Empfangsmodul des RaspPi überhaupt überprüfen?
  2. Wenn ja kann eigentlich nur das Sendemodul defekt sein oder?
    Ich habe einen RaspPi B Model mit Sender: FS1000A und angelöteter 17,4cm langer Antenne, Empfänger XY-MK-5V. Beide sind nach deinem Tut angeschlossen. Spannung liegt auch an den Modulen an (nachgemessen) und die Datenpins sind korrekt angeschlossen.
    Anbei mal meine Config.json:
    {
    “devices”: {
    “Alarman”: {
    “protocol”: [ “clarus_switch” ],
    “id”: [{
    “id”: “B9”,
    “unit”: 2
    }],
    “state”: “off”
    }
    },
    “rules”: {
    “test”: {
    “rule”: “IF Alarman.state IS on THEN switch DEVICE Alarman TO off”,
    “active”: 1
    }
    },
    “gui”: {
    “Alarman”: {
    “name”: “Alarmanlage An”,
    “group”: [ “Alarmanlage” ],
    “media”: [ “all” ],
    “readonly”: 0
    }
    },
    “settings”: {
    “log-level”: 4,
    “pid-file”: “/var/run/pilight.pid”,
    “log-file”: “/var/log/pilight.log”,
    “send-repeats”: 10,
    “receive-repeats”: 1,
    “webserver-enable”: 1,
    “webserver-port”: 5001,
    “webserver-cache”: 0,
    “webserver-root”: “/usr/local/share/pilight”,
    “firmware-update”: 0
    },
    “hardware”: {
    “433gpio”: {
    “sender”: 0,
    “receiver”: 1
    }
    },
    “registry”: {
    “pilight”: {
    “version”: {
    “current”: “6.0”
    }
    }
    }
    }
    Über deine Hilfe würde ich mich sehr freuen, da ich schon so einige Stunden mit dem Problem verbracht habe 

Hallo Sunny20k17,

klingt eigentlich alles Logisch, wie du es beschreibst. Pinbelegung in der Hardware.json auch noch einmal überprüft? Vielleicht sonst auch mal an einen anderen Pin am Pi probieren…
Was du sendest bzw. was pilight gerade loggt kommt auch in der ausgabe, das ist richtig. Es sollte aber durchaus möglich sein die eigenen gesendeten Sachen wieder zu empfangen.

Grüße

Daniel