Openhab2 mit Pilight

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

deranfänger
Beiträge: 45
Registriert: 12. Feb 2018 17:53

Re: Openhab2 mit Pilight

Beitrag von deranfänger »

ja scheint was geholfen zu haben.
pilight war jetzt mal bei den bindings zum installieren dabei.

die config dabei habe ich von meinen ersten Versuchen mal belassen.

dort scheint es aber noch probleme zu geben

2019-12-08 19:20:41.899 [ERROR] [ternal.PilightGenericBindingProvider] - Item config Funksteckdose_0617_1 does not match instance#location:device,property=optional pattern

deranfänger
Beiträge: 45
Registriert: 12. Feb 2018 17:53

Re: Openhab2 mit Pilight

Beitrag von deranfänger »

mit dem OH 2.5 releas gibt es ja nun ein Pilight Binding

aber hat es schon jemand zum laufen gebracht?

in der Doku steht:
Item Configuration
The following syntax is supported since version 1.7:

pilight="<instance>#<device>,property=value"
where <instance> is one of the instances you defined in the binding configuration, and <device> is the same as specified in your pilight config.json file. The <property>=<value> part is only needed for String and Number items. See the examples below.
daher habe ich meine Items so geschrieben:

Code: Alles auswählen

Switch  Funksteckdose_0669_1    "Funksteckdose_0669_1"             (Lamps)         {pilight="kaku#Funksteckdose_0669_1"}
wenn ich diese nun schalten möchte steht folgendes im Log
2019-12-26 17:34:56.129 [vent.ItemStateChangedEvent] - Funksteckdose_0669_1 changed from OFF to ON

2019-12-26 17:35:00.083 [ome.event.ItemCommandEvent] - Item 'Funksteckdose_0669_1' received command OFF

==> /var/log/openhab2/openhab.log <==

2019-12-26 17:35:00.087 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/Funksteckdose_0669_1] {item=Funksteckdose_0669_1, bridgemarker=true, command=OFF, timestamp=1577378100083} | {org.osgi.service.event.EventHandler, org.osgi.service.cm.ManagedService}={service.id=364, service.bundleid=216, service.scope=bundle, event.topics=openhab/command/*, service.pid=org.openhab.pilight, component.name=org.openhab.binding.pilight.binding, component.id=214} | Bundle(org.openhab.binding.pilight_1.14.0 [216])]

java.lang.NullPointerException: null

at org.openhab.binding.pilight.internal.PilightBinding.sendUpdate(PilightBinding.java:180) ~[?:?]

at org.openhab.binding.pilight.internal.PilightBinding.internalReceiveCommand(PilightBinding.java:175) ~[?:?]

at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:97) ~[?:?]

at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:49) ~[?:?]

at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [bundleFile:?]

at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [bundleFile:?]

at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [bundleFile:?]

at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [bundleFile:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_222]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_222]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_222]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_222]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]
kann mir jemand weiterhelfen?

deranfänger
Beiträge: 45
Registriert: 12. Feb 2018 17:53

Re: Openhab2 mit Pilight

Beitrag von deranfänger »

hat keiner eine idee?

zwischenzeitlich habe ich etwas weiter gemacht

/pilight/config.json

Code: Alles auswählen

{
        "devices": {
                "0617_1": {
                        "protocol": [ "clarus_switch" ],
                        "id": [{
                                "id": "A3",
                                "unit": 34
                        }],
                        "state": "on"
                },
                "0617_2": {
                        "protocol": [ "clarus_switch" ],
                        "id": [{
                                "id": "F15",
                                "unit": 47
                        }],
                        "state": "on"
                },
                "0617_3": {
                        "protocol": [ "clarus_switch" ],
                        "id": [{
                                "id": "F15",
                                "unit": 63
                        }],
                        "state": "off"
                },
                "0669_1": {
                        "protocol": [ "clarus_switch" ],
                        "id": [{
                                "id": "A3",
                                "unit": 36
                        }],
                        "state": "off"
                },
                "0669_2": {
                        "protocol": [ "clarus_switch" ],
                        "id": [{
                                "id": "B3",
                                "unit": 36
                        }],
                        "state": "off"
                },
                "0669_3": {
                        "protocol": [ "clarus_switch" ],
                        "id": [{
                                "id": "C7",
                                "unit": 36
                        }],
                        "state": "off"
                }

},
        "rules": {},
        "gui": {
                "0617_1": {
                        "name": "0617_1",
                        "group": [ "Funksteckdosen" ],
                        "media": [ "all" ]
                },
                "0617_2": {
                        "name": "0617_2",
                        "group": [ "Funksteckdosen" ],
                        "media": [ "all" ]
                },
                "0617_3": {
                        "name": "0617_3",
                        "group": [ "Funksteckdosen" ],
                        "media": [ "all" ]
                },
                "0669_1": {
                        "name": "0669_1",
                        "group": [ "Funksteckdosen" ],
                        "media": [ "all" ]
                },
                "0669_2": {
                        "name": "0669_2",
                        "group": [ "Funksteckdosen" ],
                        "media": [ "all" ]
                },
               "0669_3": {
                        "name": "0669_3",
                        "group": [ "Funksteckdosen" ],
                        "media": [ "all" ]
                }

},
        "settings": {
                "log-level": 6,
                "pid-file": "/var/run/pilight.pid",
                "log-file": "/var/log/pilight.log",
                "standalone": 0,
                "port": 5000,
                "webserver-enable": 1,
                "webserver-root": "/usr/local/share/pilight/webgui",
                "webserver-http-port": 5001,
                "webserver-https-port": 5002,
                "webserver-cache": 1,
                "gpio-platform": "raspberrypi3"
        },
        "hardware": {
                "433gpio": {
                        "sender": 0,
                        "receiver": 1
                }
        },
        "registry": {
                "webserver": {
                        "ssl": {
                                "certificate": {
                                        "location": "/etc/pilight/pilight.pem"
                                }
                        }
                },
                "pilight": {
                        "version": {
                                "current": "8.1.5"
                        }
                },
                "hardware": {
                        "RF433": {
                                "mingaplen": 4420,
                                "maxgaplen": 72900,
                                "minrawlen": 26,
                                "maxrawlen": 400
                        }
                }
        }
}

pilight.cfg

Code: Alles auswählen

# Multiple pilight instances are supported. Both the .host and .port values are required for each instance.
# 
# IP address of the pilight daemon
# <instance>.host=<ip>
#
# Port of the pilight daemon. You must explicitly configure the port in pilight or otherwise a random port will be used and the binding will not be able to connect. 
# <instance>.port=<port>
#
# Optional delay (in milliseconds) between consecutive commands. Recommended value without band pass filter: 1000. Recommended value with band pass filter: somewhere between 200-500
# <instance>.delay=<delay in miliseconds>
#
# Example: 


clarus_switch.host=192.168.1.4
clarus_switch.port=5001
clarus_switch.delay=500
pilight.items

Code: Alles auswählen

Switch  Funksteckdose_0669_1    "Funksteckdose_0669_1"    (Lamps)       {pilight="clarus_switch#0669_1"}
log

Code: Alles auswählen

2020-01-13 22:23:29.629 [ome.event.ItemCommandEvent] - Item 'Funksteckdose_0669_1' received command ON

2020-01-13 22:23:29.652 [vent.ItemStateChangedEvent] - Funksteckdose_0669_1 changed from OFF to ON

aber von der paper ui aus schaltet die Steckdose nicht

Benutzeravatar
udo1toni
Beiträge: 13860
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Openhab2 mit Pilight

Beitrag von udo1toni »

Du kannst ein OH1 Binding nicht von Paper UI aus steuern.
Paper UI Control ist nicht als normale UI gedacht und wird in der nächsten Hauptversion entfallen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

deranfänger
Beiträge: 45
Registriert: 12. Feb 2018 17:53

Re: Openhab2 mit Pilight

Beitrag von deranfänger »

Guten Morgen,

Udo du hast recht.
das war ein Schreibfehler von mir

das ITEM "Funksteckdose_0669_1" habe ich in meine Sitemap geschrieben und kann es nun über die BASIC UI steuern.

nach den Log File schaltet es auch.

ich glaube der Fehler liegt in der pilight.cfg
laut Doku soll man das hier ausfüllen, wobei mir leider nicht so ganz klar ist was <instance> wirklich ist.

Code: Alles auswählen

 
  <instance>.host=<ip>
  <instance>.port=<port>
  <instance>.delay=<delay in miliseconds>
Hier habe ich schon unterschiedliche Möglichkeiten versucht aber am Ergebnis hat es nichts verändert

Benutzeravatar
udo1toni
Beiträge: 13860
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Openhab2 mit Pilight

Beitrag von udo1toni »

<instance> ist ein eindeutiger Bezeichner für diesen pilight host. Du könntest ja mehrere pilight hosts haben. Du hast das aber oben schon korrekt konfiguriert (wobei ich kein pilight nutze, aber die Konfiguration sieht korrekt aus...)
Du könntest versuchen, einen einfacheren Namen zu verwenden, also nicht clarus_switch, sondern (mindestens testweise) nur clarus.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

deranfänger
Beiträge: 45
Registriert: 12. Feb 2018 17:53

Re: Openhab2 mit Pilight

Beitrag von deranfänger »

ist den die <instance> nur ein Name den ich frei vergeben kann damit ich es zuordnen kann?
die Verbindung zwischen openhab und pilight besteht ja eigendlich nur durch die IP Adresse und den Port.

die <instance> habe ich so gewählt wegen dem protocol in der /pilight/config.json

wenn ich das kürze taucht die <instance> nirgendwo mehr in der /pilight/config.json auf

schwer zu erklären weil das wahrscheinlich genau der punkt ist den ich nicht versteh.

Benutzeravatar
udo1toni
Beiträge: 13860
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Openhab2 mit Pilight

Beitrag von udo1toni »

In der Doku: https://www.openhab.org/addons/bindings ... figuration, da steht:
where <instance> is one of the instances you defined in the binding configuration, and <device> is the same as specified in your pilight config.json file. The <property>=<value> part is only needed for String and Number items. See the examples below.
Also, <instance> ist ein Verweis auf pilight.cfg in /etc/openhab2/services/

<device> bezieht sich auf die Devices, dir Du in config.json definiert hast.

<instance> ist nur der Name der Verbindung zum pilight Server, so dass man mehrere pilights mit openHAB steuern kann. Innerhalb eines pilight Systems kann es ja mehrere Devices geben, wie die anzusteuern sind, ist dann wieder in config.json eingetragen, dort musst Du natürlich das clarus_switch als Protokoll stehen lassen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

deranfänger
Beiträge: 45
Registriert: 12. Feb 2018 17:53

Re: Openhab2 mit Pilight

Beitrag von deranfänger »

nochmal vielen dank für deine Hilfestellung

gestern habe ich <instance> auf clarus geändert.
es tut sich aber nichts.
dann habe ich den Raspberry mal neu gestartet.
dabei ist mir aufgefallen das selbst nach

Code: Alles auswählen

sudo service pilight start
die pilight Weboberfläche nicht erreichbar war.
erst nach dem ich in der /config.json ne Kleinigkeit geändert hatte um diese zu speichern ging es wieder.

Vielleicht liegt dort irgendwo der Fehler.
Ich werde wohl mal auf einer neuen Speicherkarte mal das alles neu installieren um auszuschließen das es daran liegt

deranfänger
Beiträge: 45
Registriert: 12. Feb 2018 17:53

Re: Openhab2 mit Pilight

Beitrag von deranfänger »

dank dem hinweises eines Freundes bin ich ein Stück weiter gekommen

in der /pilight/config.json muss einem der port und einmal der webserver-port definiert sein.

Code: Alles auswählen

        "settings": {
                "log-level": 6,
                "pid-file": "/var/run/pilight.pid",
                "log-file": "/var/log/pilight.log",
                "standalone": 0,
                "port": 5000,
                "webserver-enable": 1,
                "webserver-root": "/usr/local/share/pilight/webgui",
                "webserver-http-port": 5001,
                "webserver-https-port": 5002,
                "webserver-cache": 1,
                "gpio-platform": "raspberrypi3"
dementsprechend ist der port in der pilight.cfg dann der port und nicht der webserver-port

Antworten