RFHEM - Modul für Befehle an andere FHEM-Instanzen

Begonnen von chris1284, 15 Mai 2014, 20:07:57

Vorheriges Thema - Nächstes Thema

Gerhard

@chris1284

ich habe inden beiden Instanzen das Passwort für telnetPort entfernt, und siehe da es funktioniert.

define telnetPort telnet 7072 global
attr telnetPort icon rc_TV
attr telnetPort room System
attr telnetPort verbose 5

# define allowed_telnetPort allowed
# attr allowed_telnetPort password SiLiCon
# attr allowed_telnetPort validFor telnetPort


alerdings ich bekomme an andere Stellen ständig Meldungen, dass das Password für telnetPort nicht gesetzt ist.

Daher meine Fragen, benutzt ihr das Password für telnetPort und gleichzeitig RFHEM?, und wenn ja,
wie definiert ihr das pswd für telnetPort?

Chris ist es möglich, das der Fehler bei meinem telnetPort defines liegt?, oder ist die Auswirkung in RFHEM?

Gerhar
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

Frank_Huber

Zitat von: Gerhard am 16 September 2017, 13:45:59
@chris1284

ich habe inden beiden Instanzen das Passwort für telnetPort entfernt, und siehe da es funktioniert.

define telnetPort telnet 7072 global
attr telnetPort icon rc_TV
attr telnetPort room System
attr telnetPort verbose 5

# define allowed_telnetPort allowed
# attr allowed_telnetPort password SiLiCon
# attr allowed_telnetPort validFor telnetPort


alerdings ich bekomme an andere Stellen ständig Meldungen, dass das Password für telnetPort nicht gesetzt ist.

Daher meine Fragen, benutzt ihr das Password für telnetPort und gleichzeitig RFHEM?, und wenn ja,
wie definiert ihr das pswd für telnetPort?

Chris ist es möglich, das der Fehler bei meinem telnetPort defines liegt?, oder ist die Auswirkung in RFHEM?

Gerhar

Telnet-Passwort:
defmod allowed_telnetPort allowed
attr allowed_telnetPort password myPassword
attr allowed_telnetPort validFor telnetPort


RFHEM definition:
defmod PI_DG RFHEM 192.168.12.54 myPassword
attr PI_DG stateFormat statedev

Gerhard

Hallo Frank, danke!

aber genau den allowed_telnetPort musste ich entfernen damit es funktioniert.
Ich hatte es bis jetzt genau so wie du es vorschlägst gehabt, aber so funktioniert es nicht!!!
nur ohne allowed_telnetPort funktioniert es, wenigstens bei mir?

Gerhard
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

Gerhard

#168
Hallo chris1264,

wenn ich die Passworter der telnetPorts definiere (allowed_telnetPort)
defmod allowed_telnetPort allowed
attr allowed_telnetPort password myPassword
attr allowed_telnetPort validFor telnetPort


folgende Logeinträge
Sender:
2017.09.16 16:12:01 3: Host present, executing command...
2017.09.16 16:12:01 3: Command executed.
Empfenger:
2017.09.16 14:13:26 4: Connection accepted from telnetPort_192.168.0.42_38030


also, die Kommunikation zwischen Sender und Empfenger findet statt, aber der Empfenger führt den set Befehl nicht aus.
schalte ich das Passwort beim Empfenger aus, dann wird der set Befehl ausgeführt.

Meine Vermutung ist, dass RFHEM vllt. Password nicht richtig verarbeitet. Kannst du das nachfolziehen?,
oder mir Hinweise geben wie ich es weiter untersuchen soll.
Fazit: ohne Password funktioniert, mit Password funktioniert nicht!!

Danke, Gerhard
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

chris1284

was hat denn dein passwort so für sonderzeichen?

chris1284

gerade getestet. funktionier mit passwort einwandfrei. das automatische update sowie der st cmd befehl

Gerhard

keine sonderzeichen, einfach: SiLiCon

ich habe in Modul RFHEM ein paar Helperausgaben eingefügt, und festgestellt, das RFHEM alle richtig sendet!

die Befehle kommen in telnet beim Empfänger auch an, aber werden nicht ausgeführt?

da es nicht am Sender (RFHEM) liegt, wie kann ich im Empfenger (telnet hat schon verbose 5) weitersuchen?
wie gesagt ohne Paswort funktioniert der Empfenger, mit nicht!

ich habe keine Ideen mehr.
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

Ma_Bo

Im allowed device kann man als attr angeben, welche Befehle ausgeführt werden dürfen, weiß gerade den Namen dafür aber nicht, vielleicht hilft das ein wenig weiter...


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

sku

Mir fiel vor einiger Zeit auf, dass bei mir RFHEM ebenfalls nicht mehr funktioniert hat. Habe eben damit rumgespielt, zwischendrin dachte ich, eine Lösung zu haben, aber mal geht es und mal geht es nicht. Jetzt habe ich das Passwort entfernt, da ich sowieso allowedfrom definiert habe. Ohne Passwort ist derweil alles OK!

Frank_Huber

Ja, ein komisches sporadisches Fehlverhalten ist mir auch aufgefallen.
Hängt evtl mit den Änderungen in Blocking.pm zusammen?

Hatte Anfangs mein Netzwerk im Verdacht. Es hat bei mir begonnen als ich meine IP-Adressen umstrukturiert habe.
Hat sich dann aber als falsche Vermutung herausgestellt.

Meine Lösung war dann für jedes RFHEM device auf der Gegenseite einen eigenen Telnet Port zu öffnen.
Also weiterhin mit Passwort, aber eben dedizierte Ports.
Seither läuft das wieder stabil.

Ein Verbesserungsvorschlag wenn es erlaubt ist:
Es gibt ja mittlerweile eine Prüfung ob die Gegenseite erreichtbar ist vor der Ausführung.
Wie wäre es denn mit einer "retry" Option?
könnte mit 2 Atributen geregelt werden. "retryCount" und "retryWait"


fhem-mail

Ich hatte das gleiche Problem. Ohne das telnet Passwort gehts. der direkt eingegebene Befehl set LED1 on funktioniert auf dem entfernten pi nur, nachdem ich das telnet-pw entfernt hatte. Nun funktioniert es aber sicher und regelmäßig.
Die ausgelesenen Werte  (Temperatur) eines Umweltsensors wurden (mit telnet-pw) manchmal übertragen, manchmal nicht, manchmal mit großer Verzögerung. Ohne telnet-pw funktioniert es nun. Es sieht so aus, als ob die Verbindung zwar steht, aber die Kommunikation abbricht und irgendwelche timeouts die Sache verpfuschen.

duke-f

Bitte gleich mal um Entschuldigung, wenn ich einen entsprechenden Post übersehen habe. Aber ich will mir hierbei kein Eigentor schießen und frage deshalb lieber erst mal.

Wenn ich auf zwei Instanzen RFHEM installiere für ein Gerät, das z.B. an Instanz B angebunden ist und an Instanz A als Dummy vorliegt und auf beiden Instanzen die Attribute RFHEMdevs und RFHEMevents anlege, schaffe ich dann eine Endlosschleife?

Hintergrund: Mein Chromecast ist an einem Raspberry angelegt mittels GOOGLECAST (Instanz B). Das Hauptsystem läuft auf dem Cubie (Instanz A). Jetzt sollen einerseits die Eingaben an der Hauptinstanz über RFHME an Instanz B und den Chromecast übertragen werden (so z. B. Pause bei Telefonanruf), andererseits aber die anderweitig am Chromecast und damit auf Instanz B vorgenommenen Einstellungen auch auf die Hauptinstanz (Instanz A) übertragen werden, damit das auch hier im UI erscheint.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Frank_Huber



Zitat von: duke-f am 23 März 2018, 17:10:05
Bitte gleich mal um Entschuldigung, wenn ich einen entsprechenden Post übersehen habe. Aber ich will mir hierbei kein Eigentor schießen und frage deshalb lieber erst mal.

Wenn ich auf zwei Instanzen RFHEM installiere für ein Gerät, das z.B. an Instanz B angebunden ist und an Instanz A als Dummy vorliegt und auf beiden Instanzen die Attribute RFHEMdevs und RFHEMevents anlege, schaffe ich dann eine Endlosschleife?

Hintergrund: Mein Chromecast ist an einem Raspberry angelegt mittels GOOGLECAST (Instanz B). Das Hauptsystem läuft auf dem Cubie (Instanz A). Jetzt sollen einerseits die Eingaben an der Hauptinstanz über RFHME an Instanz B und den Chromecast übertragen werden (so z. B. Pause bei Telefonanruf), andererseits aber die anderweitig am Chromecast und damit auf Instanz B vorgenommenen Einstellungen auch auf die Hauptinstanz (Instanz A) übertragen werden, damit das auch hier im UI erscheint.

Würde vermuten ja.
Du brauchst rfhem nur auf dem sendenden fhem.
Beim empfangenden reicht ein Telnet Port.
Am besten ohne password und mittels allowedfrom auf die IP des senders festzurren.

Kannst ja wenn du das gleiche Gerät in zwei Richtungen klonen musst auch die Readings einschränken.
Da kannst dann deinen loop auch vermeiden.

Mit dem Handy online, daher kurz gefasst...


duke-f

Naja, es soll eben in beide Richtungen gesendet werden. Einmal vom UI am Hauptsystem an den Chromecast am Nebensystem, einmal vom Nebensystem die dort vorgenommenen Eingaben und Einstellungen ans Hauptsystem.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

RoBra81

Als Alternative zu RFHEM kannst du auch MQTT einsetzen - ich habe bei mir umgestellt und bin sehr zufrieden damit...

Gesendet von meinem SM-G935F mit Tapatalk