Probleme mit RULES und 433Mhz Funkmodul

Alle Infos und Tipps speziell zu openHAB 2

Moderatoren: seppy, udo1toni

Antworten
favorit626
Beiträge: 19
Registriert: 15. Mai 2016 22:38

Probleme mit RULES und 433Mhz Funkmodul

Beitrag von favorit626 » 12. Jul 2019 16:02

Hallo,
nach langer Zeit mal wieder ein Problem.

Ich benutze einen RP 3 mit einem 433Mhz Funkmodul um einfache Funksteckdosen zu schalten. Aus der BasiUI
sozusagen per Hand schalten klappt hervorragend. Erstelle ich eine Regel mit dem RULE-Generator in Paper UI z.B. Steckdose-Kaffeemaschine morgens um 05.30 Uhr einschalten funktioniert auch. Erstelle ich jetzt eine Regel über Visual Studio will es nicht klappen.

Hier mein konfigurationen:

things:

Code: Alles auswählen

Thing exec:command:steckdose_kueche  [command="/etc/openhab2/scripts/kaffeemaschine.sh A %2$s",interval=0, autorun=true]
items:

Code: Alles auswählen

/* Steckdosen */
Group gsteckd433 "Funksteckdosen Gruppe" <poweroutlet>
String Steckdose_kueche  "Steckdose Küche"  <poweroutlet>  (gsteckd433, gGF_Kueche)   [ "Switchable" ]  { channel="exec:command:steckdose_kueche:input", autoupdate="true" }
sitemap:

Code: Alles auswählen

Frame  {
		Group item=gGF label="Erdgeschoss" icon="groundfloor" { 
			Text item=GF_Kueche {
				Switch item=Licht_GF_Kueche_Decke
				Switch item=Steckdose_kueche  mappings=[ "ON"="Ein", "OFF"="Aus" ]
				Setpoint item=Kueche_settemp label="Küche [%.1f °C]" minValue=4.5 maxValue=30 step=0.5
				}    
rule: (die nicht funktioniert)

Code: Alles auswählen

rule "Kaffeemaschine einschalten"
when
    Time cron "0 29 5 ? * MON-FRI"
then
    sendCommand(Steckdose_kueche, ON)
end

rule "Kaffeemaschine ausschalten"  
when 
    Time cron "0 01 6 ? * MON-FRI" 
then
    sendCommand(Steckdose_kueche, OFF)
end
Weitere Probleme :
1. In der Paper UI sind einige "THINGS", die wahrscheinlich irgendwie automatisch erstellt wurden, die sich aber nicht
mehr bearbeiten lassen. und auch nicht löschen lassen Fehler "Conflict - 409" s. Foto Paper UI Things.

PaperUIThings.JPG

2. Wenn die über Paper UI erstellte Regel ausgeführt wird geschieht dies nicht einmal sondern 30-40 mal. Foto.

Rule Ausführung.JPG

Wäre schön wenn jemand helfen könnte.

Gruß
Knut
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
peter-pan
Beiträge: 357
Registriert: 28. Nov 2018 12:03
Wohnort: Schwäbisch Gmünd

Re: Probleme mit RULES und 433Mhz Funkmodul

Beitrag von peter-pan » 13. Jul 2019 14:34

Also für die Things die man bei dir in der PaperUI sieht, gibt es "manuell" angelegte Things. Deshalb kann man sie auch in der PaperUI nicht löschen. Prüfe das bitte mal nach.
Bei dem andere Problem fällt mir im Moment nichts ein. Ich schaue es mir aber noch einmal genauer an.

Benutzeravatar
peter-pan
Beiträge: 357
Registriert: 28. Nov 2018 12:03
Wohnort: Schwäbisch Gmünd

Re: Probleme mit RULES und 433Mhz Funkmodul

Beitrag von peter-pan » 13. Jul 2019 14:50

Leg doch mal ein Dummy Item an.

Code: Alles auswählen

Switch      Dummy1   "Testschalter Dummy1 [%s]"
und ändere deine Regel in:

Code: Alles auswählen

rule "Kaffeemaschine einschalten"
when
    Item Dummy1 changed to ON or
    Time cron "0 29 5 ? * MON-FRI"
then
    sendCommand(Steckdose_kueche, "ON")
    // Steckdose_kueche.sendCommand("ON") // so sollte es auch gehen
end
und schaue was passiert. Vielleicht liegt es an den Hochkommas, da das Original-Item ein String ist. Ich habe es nicht getestet.
Wie sieht denn das Shell-Script aus ?

favorit626
Beiträge: 19
Registriert: 15. Mai 2016 22:38

Re: Probleme mit RULES und 433Mhz Funkmodul

Beitrag von favorit626 » 14. Jul 2019 20:08

Hallo "peter-pan",

danke für deine Hilfe, so

Code: Alles auswählen

rule "Kaffeemaschine nachmittags ein"
when
        Time cron "0 58 14 ? * * "
then
        Steckdose_kueche.sendCommand("ON")
end

rule "Kaffeemaschine nachmittags aus"
when
        Time cron "0 25 15 ? * * "
then
        Steckdose_kueche.sendCommand("OFF")
end
funktionierts.

Das Sript sieht so aus :

Code: Alles auswählen

#!/bin/bash
if [ "$1" = "A" ]; then
    if [ "$2" = "off" ] || [ "$2" = "0" ] || [ "$2" = "OFF" ]; then
        sudo /etc/openhab2/433Utils/RPi_utils/send 11111 1 0
    else
        sudo /etc/openhab2/433Utils/RPi_utils/send 11111 1 1
echo `date` Logeintrag1 >> ~/test1.log        
    fi
Die Sache mit dem Dummy-item habe ich nicht verstanden, was soll das bewirken?

Das Problem mit dem mehrfach ausführen des Schaltbefehls, kann es an den Einstellungen im "Thing" in der Paper UI liegen?
Da ist z.B. der Timeout auf 15 Sek. eingestellt, das möchte ich ändern weiss aber nicht wie.

Fruß
Knut

Benutzeravatar
udo1toni
Beiträge: 1788
Registriert: 11. Apr 2018 18:05
Wohnort: Darmstadt

Re: Probleme mit RULES und 433Mhz Funkmodul

Beitrag von udo1toni » 14. Jul 2019 22:27

Das Problem ist hier der Itemtyp.

Switch Items haben den Status ON und OFF, während String Items den Status "ON" und "OFF" haben. Man beachte die Anführungszeichen. Das eine ist ein einfacher Status, das andere ist ein String.
Da Du aber ohnehin keine Rückmeldung über den Status bekommst, ist die Abbildung über einen Switch in der UI eher kontraproduktiv.

Zusätzlich sollte das Item keinen Status halten, was erreicht wird, indem man in der Itemdefinition

Code: Alles auswählen

, autoupdate="false"
setzt.
openHAB kann keine gesicherte Kenntnis über den Zustand der Steckdose haben, solange es keinen Rückkanal gibt!

Warum die Rule offensichtlich mehrfach getriggert wird, ist erst mal nicht erklärbar, allenfalls könntest Du irgendwo einen Tippfehler drin haben. Du kannst in Paper UI schauen, ob die von Dir in der .things Datei gesetzten Parameter auch so übernommen wurden (das Thing kann man wie ein über Paper UI angelegtes Thing anschauen, nur bearbeiten geht nicht)

Benutzeravatar
peter-pan
Beiträge: 357
Registriert: 28. Nov 2018 12:03
Wohnort: Schwäbisch Gmünd

Re: Probleme mit RULES und 433Mhz Funkmodul

Beitrag von peter-pan » 15. Jul 2019 00:37

Der Dummy-Schalter war nur zum Testen gedacht, um die Regel nur anzustossen, wann du es willst und nicht warten musst bis der Cron-Trigger die Rule startet.

ibot1989
Beiträge: 46
Registriert: 30. Jul 2016 19:51

Re: Probleme mit RULES und 433Mhz Funkmodul

Beitrag von ibot1989 » 15. Jul 2019 14:18

Muss das schaltbare item beim exec Binding nicht als "Run" statt als "Input" angegeben werden?

Bin mir gerade nicht 100% sicher

Gesendet von meinem ONEPLUS A6013 mit Tapatalk


favorit626
Beiträge: 19
Registriert: 15. Mai 2016 22:38

Re: Probleme mit RULES und 433Mhz Funkmodul

Beitrag von favorit626 » 15. Jul 2019 14:49

Herzlichen Dank Euch, es funltioniert jetzt wie es soll, und danke für die gute Erklärung.

udo1toni:
Warum die Rule offensichtlich mehrfach getriggert wird, ist erst mal nicht erklärbar....
Die .things - Datei habe ich über Visual Studio angelegt, da kann ich aber keine Parameter wie z.B. Timeuot 15 Sek.
angeben. Oder? Und wenn ich mir dieses Thing in der Paper UI anschaue steht da so etwas drin.

Gruß
Knut

Benutzeravatar
peter-pan
Beiträge: 357
Registriert: 28. Nov 2018 12:03
Wohnort: Schwäbisch Gmünd

Re: Probleme mit RULES und 433Mhz Funkmodul

Beitrag von peter-pan » 15. Jul 2019 17:32

Hallo Knut,
das manuelle Anlegen des Timeout per VSC geht schon. Schau mal in der Doku, da ist ein Beispiel.
So sieht das bei mir aus:

Code: Alles auswählen

Thing exec:command:cpu_temp "OH2-PI Temperatur" @ "Kinderzimmer" 
                    [command="/bin/bash /etc/openhab2/scripts/cpu_temp.sh", interval=120, timeout=30, transform="REGEX((.*?))"]
Andere Frage: Wenn du das Thing manuell mit VSC angelegt hast und das gleiche Thing auch in der PaperUI mit anderen Werten siehst, kann es sein, dass es dieses 2 mal gibt und das der Grund für dein anders Problem sein könnte ?

favorit626
Beiträge: 19
Registriert: 15. Mai 2016 22:38

Re: Probleme mit RULES und 433Mhz Funkmodul

Beitrag von favorit626 » 15. Jul 2019 18:20

Hallo "peter-pan" ich habe jetzt in dem VS C Thing ein Timeout eingefügt, und siehe da wenn ich mir das "Ding" in Paper UI anschaue
ist es da auch geändert. Ich denke nicht das es das "Ding" zweimal gibt.
Und ich glaube, seit ich die VS C "Rule" nutze und nicht mehr die, über den Rule-Generator erstellte, gibt es auch keine mehfach Ausführung mehr.
Morgenfrüh nochmal abwarten.
Danke erstmal, wieder eine ganze Menge gelernt.

Gruß
knut

Antworten

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 3 Gäste