Rules Probleme

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

fmmephisto

Re: Rules Probleme

Beitrag von fmmephisto »

Ich habe nun folgende Dinge im setting.json stehen

"openhab.connection.host": "192.168.178.148",
"openhab.connection.port": 8080,
"openhab.connection.basicAuth.username": "meinusernamefüropenhab",
"openhab.connection.basicAuth.password": "meinpasswortfüropenhab"

Es gibt immer noch folgende Fehlermeldungen:

---
Error:
Error while connecting to openHAB REST API.

Message:
Error: Request failed with status code 401
---

Welches Passwort und username muss denn da rein?
Der vom PI oder von openhab?

ist leider nicht beschrieben....

Hinweis: ich bin auch total neu im Raspberry Bereich. Habe nur rudimentäre Grundkenntnisse im Netzwerk-Bereich, also keine Ahnung, wann man wie wo Token benötigt, wie man die erstellt, was ein API ist, Ports und hosts sind grob bekannt, aber ist nicht mein Lebensinhalt. :-)

fmmephisto

Re: Rules Probleme

Beitrag von fmmephisto »

Sorry es fehlte wohl noch was:

Could not reload items for Items Explorer
Could not reload items for Things Explorer
---
Error:
Error while connecting to openHAB REST API.

Message:
Error: Request failed with status code 401
---
---
Error:
Error while connecting to openHAB REST API.

Message:
Error: Request failed with status code 401
---

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Rules Probleme

Beitrag von int5749 »

fmmephisto hat geschrieben: 9. Jan 2023 08:11 Sorry es fehlte wohl noch was:
Username und Password sind die Daten, welche Du bei der Einrichtung angegeben hast und nutzt diesen um die MainUI "administrativ" zu entsperren.
Derzeit gibt es nur den Adminsitrator (wie gesagt: selber vergeben)

Wenn Du bei Dir im Browser (Safari) 192.168.178.148:8080 eingibst, solltest Du den Account unten links sehen.
Wenn das Passwort gespeichert ist, siehst Du auch direkte etwas oberhalb: Administration mit Einstellungen, Entwicklertools, etc)
Wenn Du nun unten links auf den Account klickst, öffnet sich links eine Übersicht der Sessions. Dort ganz nach unten scrollen => API-Token
Dort kannst Du den API Token erstellen. Dieser wird benötigt, damit VSC direkt auf die OH Instanz zugreifen kann.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

fmmephisto

Re: Rules Probleme

Beitrag von fmmephisto »

Danke... wieder was gelernt.

Habe den Token erstellt und dann im VSC eingetragen.
Nun gibt es keinen Fehler mehr und ich kann auch die Items und Things sehen.

:-)

Danke nochmals.
Dann werde ich jetzt mal schauen, wie man damit Rules/scripte bauen kann.

fmmephisto

Re: Rules Probleme

Beitrag von fmmephisto »

Frage: ich sehe nur Things und Items aus openhab im VSC. Warum kann man die bereits bestehenden Rules/Scripte/Pages/Sitemaps nicht sehen?
Muss man das alles neu machen?
Es würde helfen um zu schauen, wie man die dann im VSC aufbaut.

Ich habe auch mal unter "SITEMAPS" im VSC eine neue Datei angelegt.
Diese finde ich aber nicht im OPENHAB.

Wie transportiert man die Dinge aus dem Raspberry-Config-Ordner nach OPENHAB.

Automatisch scheint es nicht zu funktionieren und ich finde den Schalter zum Transport nicht.

fmmephisto

Re: Rules Probleme

Beitrag von fmmephisto »

Habe jetzt mal eine Sitemap texttechnisch aus openahb3 kopiert und in eine VSC-Sitemap kopiert, das Label geändert und gespeichert.

In allen Tutorials findet man, wenn man Sitemaps auswählt, oben rechts in der Menüleiste das openhab-Symbol, um sich die Sitemap anzusehen.
Das Symbol fehlt bei mir.

Und immer noch das Problem, dass die Sitemap, die ich in VSC angelegt habe, nicht in OPENHAB sichtbar ist.
Das VSC ist bei mir nur ein Editor, um mir die Items und Things anzeigen zu lassen.

Ich kann mit dem Editor aber nichts anfangen, da er die Sitemaps/Rules etc. nach OPENAHB überführt.

Was mache ich wieder mal falsch?

Danke Euch und Sorry für die vielen Fragen. Ich komme mir vor wie ein Baby, weil ich alles neu lernen muss.
Ich bin über 50 Jahre alt, aber ich verstehe das System nicht mehr. :-(

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Rules Probleme

Beitrag von int5749 »

Ok, Alter ist keine Entschuldigung, ich bin auch 5x ;-)

Grundsätzlich gilt
  • Wenn etwas über die MainUI erstellt wurde (Things, items, etc) ist dies nicht in VSC sichtbar
  • Wenn Du etwas über VSC (also Dateien) erstellst, ist die in der MainUI sichtbar, aber gesperrt und kann dort nicht verändert werden
Jetzt kommt der spannende Moment, den Du als Mac User wissen solltest: Wie mounted man einen SMB Share beim Mac?

openHAB erstellt in der Regel eine entsprechnde Freigabe, welche man dann als NEtzlaufwerk mit dem richtigen USer (hier der System User von openhab) um dort zu schreiben. Wichtig: Hier gibt es standard Rechte und die werden anders behandelt als z.B. bei Windows.

Wenn Du den Share verbunden hast und über Safari/FileFinder eine Datei anlegen kannst, bist Du weiter und kannst mit VSC dort arbeiten.

Wenn Du Sitemap schreibst, meinst Du auch Sitemap?? Also das, was z.B. auf dem Handy in der openHAB App geöffnet wird, oder meinst Du eine page? (also so wie sie in der MainUI mit den neuen Widgets erstellt wird??) OK, die pages kann man mittlerweile auch in der iOS openHAB App starten, war aber nicht immer so.

Mir ist kein Weg bekannt, pages mit VSC zu erstellen, ich nutzte noch sehr viel Sitemaps.
Warum: Weil ich das wichtigste automatisiert habe und nur ganz wenig von unterwegs steuern möchte ;-) Und ich kenne Sitemaps länger und hatte noch keine Zeit/Muße mich mit den pages im Detail zu beschäftigen.

VG
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

fmmephisto

Re: Rules Probleme

Beitrag von fmmephisto »

Hi int!

Danke für die Aufklärung.

Das erklärt, warum ich nichts aus openhab in VSC sehe.
Das erklärt aber nicht, warum meine Rules und Sitemap aus VSC nicht in openhab sind.

Frage: was meinst du mit share? Ich habe keinen Share. Ich habe einen iMac und einen Raspberry Pi.
Den kann kann ich auch im Finder sehen und kann dort auch die Daten bearbeiten.

Ich glaube, bei dem Thema Sitemaps geht unser Wissen auseinander: Sitemaps sind die abgesteckte Version zur Steuerung von aussen, Pages sind quasi Internetseiten mit Widgets, die man selber bauen kann. Die man jetzt auch auf dem iPhone sehen kann.
Ich benutze die Sitemaps, um zu sehen, welcher Rauchmelder, welcher Bewegungsmelder oder Türkontakt ausgelöst hat, ich kann damit meine Alarmsirenen ausschalten nach einen Alarm, ich steuere damit auch meine Wallbox zum laden.

Ich glaube, dass ich dann wirklich nicht verstehe, warum ihr alle unbedingt mit VSC arbeiten wollt? Das ist doch IT zu Fuss??? Ich müsste jetzt alles, was ich schon angelegt habe, nochmals in dem Editor anlegen, damit er die Daten trotzdem nicht nach Openhab überträgt (siehe oben!!))

Man kann doch alles in openhab3 machen? Man kann Pages erstellen, Sitemaps erstellen, Rules erstellen, Scripte schreiben... Warum VSC?? Sehe keinen Mehrwert dafür.

Das Problem ist, dass dieses Forum mehr auf DSL abfährt und ich euch nicht folgen kann, weil ich die Rules und Scripte in openhab schreibe. Dabei sehen meine Scripte auch noch anders aus als bei euch. Ich kann mit euren Skripten, die hier gepostet werden, nichts anfangen, da ich diese nicht in openhab einbinden kann. Ich kann sie zwar in VSC eintragen und auf dem Pi speichern, aber sie können nicht über openahb aufgerufen werden, da sie dort nicht vorhanden sind. Und ich kann die Scripte auch nicht in VSC schreiben, da ich die Items/Things alle in openhab3 habe und ich nun jedes Teil manuell in VSC anlegen müsste.

Gibt es vielleicht auch neue neue openhab3 user, die ohne VSC die Rules erstellen?

Leider habe ich noch kein openhab3-Forum gefunden, das mir meine ganzen Fragen beantworten kann. Anleitungen und Tutorials im Netz sind teilweise veraltet oder funktionieren nicht mehr. Beschreibungen und how-tos für openhab3 gibt es so gut wie gar nicht. Erst recht nicht auf Deutsch.

Das sind so die Gründe, warum ich so aufgeschmissen bin und denke: boaaahhh. sind die alle schlau hier. Ich verstehe die alle gar nicht.
Aber ich werde mich wohl damit anfreunden müssen, dass openhab3 noch sehr jung ist und es noch keiner richtig kann und es keine anwendbaren Anleitungen gibt.

Das ist glaube ich auch der Hauptgrund, warum ich eure Skripte nicht verstehe. Ihr schreibt die halt nicht in openhab3 sondern in VSC, was sich bei mir nicht mit openhab unterhält, weil ich wohl zu viele Fehler mache.

Wow.... IT hat sich in den letzten 40 Jahren wirklich in eine Richtung entwickelt, der ich nicht mehr gewachsen bin.
IT sollte einem doch Arbeit abnehmen und nicht noch mehr Arbeit erzeugen? Wann bin ich denn falsch abgebogen?

Ich fühle mich gerade schon wieder wie ein Baby......
Die Welt und ich haben sich in unterschiedliche Richtungen entwickelt. :-)

Naja... trotzdem Danke.

Viele Grüße
Frank

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

Re: Rules Probleme

Beitrag von udo1toni »

Da habe ich ja was losgetreten...
fmmephisto hat geschrieben: 9. Jan 2023 06:48 Ich komme von RWE/innogy/Livisi Smarthome. Da hat man die Regeln alle direkt in der App erstellt.
ok, ich korrigiere... alle ernsthaften Programmierumgebungen...
fmmephisto hat geschrieben: 9. Jan 2023 06:48 Zudem habe ich, wenn mich nicht alles täuscht, weder von COBOL, Pascal, Delphi, BASIC, VBA jemals einen externen Editor zum programmieren benutzt.
Und genau da liegt ein Irrtum vor. Sobald Du ein Programm schreibst, nutzt Du einen Editor. Visual Studio z.B. ist eine komplette Entwicklungsumgebung für diverse Programmiersprachen und selbstverständlich hat sie einen ausgewachsenen Editor mit dabei, das ist aber - wie gesagt - ein abgetrenntes Programm.
fmmephisto hat geschrieben: 9. Jan 2023 06:48 Da ich einen Apple habe, ist das nicht ganz so einfach...
Na, VS Code steht ja auch für den Apple zur Verfügung und die Plugins sollten ohne Einschränkungen funktionieren.
fmmephisto hat geschrieben: 9. Jan 2023 06:48 Ich glaube, die meisten arbeiten mit Windows Rechnern und da ist es sicher einfacher.
Da muss das Plugin genauso konfiguriert werden wie auf jedem anderen System :)

Nun hast du ja schon herausgefunden, wie das mit der Kontaktaufnahme korrekt funktioniert...
Um die Dateien bearbeiten zu können, brauchst Du natürlich Zugriff auf das Dateisystem des openHAB Systems. Wenn Du openHABian zum Aufsetzen des Raspberry verwendet hast, hat openHABian auch schon drei Shares eingerichtet, die Du mit smb://openhabian/ erreichen kannst, conf/, userdata/ und addons/ sollten dort vorhanden sein. Zugangsdaten wären openhabian:openhabian, wenn Du kein anderes Passwort vergeben hast.


Ich für meine Teil bin von den SMB Freigaben weg, weil mich die Rechteprobleme immer schon genervt haben. Stattdessen nutze ich die Remote Extension in VS Code. Das Ganze läuft so, dass ich VS Code starte und gegebenenfalls den Befehl gebe, dass VS Code sich mit dem Remote System verbindet (die Verbindungsdaten sind in einer Konfigurationsdatei hinterlegt). Anschließend arbeite ich remote auf dem System, im Editor merke ich davon aber nichts.
Das Plugin heißt Remote Development und stammt direkt von Microsoft. Es handelt sich um ein Metapaket, installiert also mehrere andere Plugins (drei Stück). Danach richtet man eine ssh Verbindung ein (Rechtsklick ganz unten ganz links auf das Symbol ><, dann erst mal Konfigurationsdatei öffnen und einen Zugang anlegen, sieht bei mir so aus:

Code: Alles auswählen

Host 192.168.178.55
  HostName openhabian
  User openhab
  IdentityFile C:\Users\udo1toni\.ssh\openhab_rsa
Das IdentityFile ist der Private Key eines Schlüsselpaares, dessen Public Key auf dem openHAB-System im Verzeichnis /usr/shar/openhab/.ssh/ in der Datei authorized_keys gespeichert ist. Da ich beim Erzeugen des Schlüsselpaares kein Passwort für den Private Key angegeben habe, wird die Verbindung Beim Aufruf des Befehls (Verbindung mit Host herstellen...) direkt aufgebaut, ohne weitere Nachfragen.
VS Code installiert auf dem Remote System beim ersten Kontakt ein paar Dateien, damit der Remote Zugriff auch mit VS Code funktioniert. Die gesamte Konfiguration, das openHAB Plugin betreffend, ist ebenfalls auf dem Remote System gespeichert, so dass es gleichgültig ist, ob ich vom Desktop aus oder vom Notebook auf arbeite. Das funktioniert sogar über einen ssh Tunnel von meiner Arbeit aus, weil ich eben keine Samba Freigabe brauche.

Was die Fixierung auf Old-School Konfiguraiton über Textdateien betrifft, so liegt das zum Teil daran, dass viele User schon recht lange mit openHAB arbeiten (ich z.B. seit 2012 - seit Version openHAB1.0). Zu der Zeit gab es überhaupt keine grafische Oberfläche, es stand nur der openHAB Designer zum Bearbeiten der Konfiguration zur Verfügung, dafür aber mit den wesentlichen Funktionen, die so eine Entwicklungsumgebung braucht.
VS Code war ein großer Sprung, der Vieles einfacher gemacht hat.

Aber es steigen auch immer wieder neue User auf Textkonfiguration um, weil sie einfach flexibler ist. Außerdem kann man manche Dinge über Textdateien schneller erledigen. Und ein ganz wichtiger Punkt: In openHAB ist es nicht möglich, die ID eines Elements zu ändern (sei es nun ein Item, ein Channel, ein Thing, eine Rule...). Aber in einer Textdatei lässt es sich nicht verhindern, dass ich IDs ändere. :) Es ist natürlich so, dass ich damit streng genommen das vorhandene Element lösche und ein neues anlege, welches - bis auf die ID - identisch mit dem alten Element ist.

Du arbeitest mit JavaScript, was vollkommen in Ordnung ist :) aber tatsächlich ist die DSL halt nativ verfügbar. in openHAB4 wird sie wohl nicht mehr automatisch installiert sein, aber es wird sie weiter geben, und das ist auch gut so, kann ich doch ohne weiteres Zutun einfach auf alle Items zugreifen, einfach, indem die die ID des Items hinschreibe. Ich muss nicht in der Itemregistry danach suchen, ich verwende es einfach. Solange ein Hello World in jeder angebotenen Programmiersprache ca. das zehnfache des DSL Codes einnimmt, sehe ich keinen Vorteil darin :) Beispiel:

Code: Alles auswählen

stringItem.postUpdate("Hello World!")
Fertig, das ist der ganze Code.

Wenn ich das über die UI erstelle, ist diese Zeile alles, was ich in der Rules-Action eintrage. erstelle ich die Rule hingegen über eine .rules Datei, braucht es noch den Rahmen, der sonst eben über die UI dazu kommt:

Code: Alles auswählen

rule "Hallo Welt"
when
    Item MeinSwitch received command
then
    stringItem.postUpdate("Hello World!")
end
Sobald das Item MeinSwitch über die UI geschaltet wird, wird das Item stringItem mit dem Gruß "Hello World!" gefüllt.

Sämtliche Codebeispiele aus dem Forum lassen sich mit einfachsten Mitteln auch über die UI verwenden, solange sie keinen Gebrauch von globalen Variablen oder globalen Konstanten machen. Du strippst einfach alles vor (einschließlich) then und setzt das, was übrig bleibt (ohne das abschließende end) als Code ein, fertig. Der Teil nach when beschreibt alle Trigger, die Du dann einfach über die UI erstellst.
Die Rules DSL kennt keinen "But only if" Zweig, der bleibt also leer. Stattdessen werden entsprechende Einschränkungen direkt im Code angegeben.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

fmmephisto

Re: Rules Probleme

Beitrag von fmmephisto »

Naja... also ich habe noch nie ein externes Programm benötigt um ein Programm in der gleichen Sprache zu schreiben.
Da täuscht du dich. Du magst recht haben, dass es immer ein Editor ist, der z. B. in Delphi integriert ist, aber ich musste nicht extra ein anderes Programm benutzen um meinen Code zu Schreiben. Daher ist die Aussage so nicht ganz korrekt.
Auch wenn man z. B, VBA-Code programmiert, muss ich nicht "XYZ-Editor" verwenden, den erst mit Microsoft Excel binden, um dann meinen Code schreiben zu können. Das ist Incl.

Zum nächsten Thema: wenn ihr Probleme mit irgendwelchen Rechten habt, ist das ok. Ich habe keine Probleme mit Rechte. Ich setze mich an den Rechner und kann meinen Code schreiben. Ich brauche keine Rechte. Ich bin das Recht an meinem Rechner. Daher verstehe ich nicht, was ihr für Probleme mit Rechten habt. Ich habe keine.

Zum Thema ID-ändern: brauche und will ich auch nicht. Ich weiss, wie meine Elemente heissen und gut ist. Die dann immer wieder zu löschen und neu zu bauen macht für mich keinen Sinn. Ist aus meiner Sicht unnötige Arbeit. Weil: Wenn ich einen ID mal vergeben habe, diese dann aber - warum auch immer - dann mal ändern will, funktionieren alle anderen Scripte nicht mehr, weil ich meine ID geändert habe.
Daher für mich nicht nachvollziehbar. Aber ich nehme es als Input mal mit. Nehmt es mir nicht übel, wenn ich es nicht verstehe warum ihr das macht.

Zum Auslesen eines Items nutze ich auch nur Bsp: items.messagetext
Das ist total einfach
Wenn ich einen Wert in messagetext ändern will, nehme ich halt "events.sendCommand('Laden_ix3‘, OFF);"
Auch nur eine Zeile.
Das ist viel einfacher und schneller als DSL wo ich so viel Text drumherum schreiben muss.

Heißt also zum Schluss: Wenn ich eure Scripte nutzen will, muss ich alles zwischen then und end nutzen.
Frage: du sagst, dasss DSL keinen but only if zweig kennt. Das ist aus meiner Sicht aber auch falsch.
Wenn ich eine Rule anlege, kommt der Trigger und der But Only If Zweig über die UI und das Script kann ich in Blockly, in javascript UND in DSL schreiben. Schon habe ich eine Rule mit DSL Script und Trigger und But Only If Bedingungen.
Klar kann ich die auch ins Script schreiben, ist aber megaaufwändig, da im UI-Editor die Items nicht auswählbar sind. Ich müsste mir die ganze only if manuell zusammensuchen. Das ist schlecht. Daher nimmt man besser die But Only If-Nummer aus openhab3.

Eine Idee ist aktuell nur, dass man mehrere Scripte in eine Rule einbaut. Wenn ich etwas von Euch aus dem Forum lerne, baue ich das in ein DSL script, schreibe mit dann die Dinge in einen Point und baue mir dann ein Script in javascript um z.b. den formatierten Text dann wieder aus dem Point rausnehme und mit meinem Code per WhatsApp versende. Klingt zwar auch schräg... aber warum einfach wenn es auch kompliziert geht. :-)

Mal sehen was ich aus dem ganzen Thema mache. Wie gesagt: als OH3-Nutzer und dessen Einsteiger macht es aus meiner Sicht keinen Sinn, einen externen Editor zu verwenden, in dem ich alles, was ich bis jetzt gemacht habe, nochmals manuell anlegen muss.

Gruß
Frank

Antworten