FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Andy_C am 10 Juni 2020, 14:11:52

Titel: ***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 10 Juni 2020, 14:11:52
Hallo Zusammen,

ich versuche gerade über FTUI einen Bereich für die Nutzereinstellungen zu machen. Heizung, Jalousien und auch die Zugangsdaten zum Senden über Mail ect. hat ganz gut geklappt. Ich habe eine Anwesenheitserkennung für 4 Personen über die Bluetooth-MAC und würde die ganz gerne in einen Dummy schreiben und dann auswerten lassen:

define Pr_Handy1 PRESENCE local-bluetooth 00:00:00:00:00:00 60 120

Die MAC würde ich gerne nicht direkt hier einschreiben, sondern in einen Dummy, Wie könnte ich das lösen?


Ausserdem würde ich gerne die Benutzerdaten für FhemWeb in einen Dummy schreiben.

attr allowed_WEB basicAuth { "$user:$password" eq "User:Passwd" }


viele Grüße, Andy
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Otto123 am 10 Juni 2020, 18:44:20
Hallo Andy,

die erste Idee geht so nicht. Einzig wenn Du PRESENCE mit einer eigene Funktion ausstattest. Oder wenn Du das define nicht normal in der config ablegst sondern wenn Du ein notify auf global:INITIALIZED machst und dort die Daten erstmal aus dem Dummy liest und dann das define mit dem Perl Befehl {fhem("define ...")} abschickst. Kann sein, dass mir manch einer für die Idee den 🕊 zeigt :)
Ich verstehe den Sinn nicht, die BT Adresse pflegt man einmalig in der PRESENCE Definition? Was ist daran besser/schlechter als der Umweg über einen Dummy?

Das mit den Benutzerdaten würde ich lassen. Da kannst Du auch basicauth weglassen. Oder klebst Du den Hausschlüssel mit Klebeband an die Haustür?...
Außerdem macht man das nicht mehr so, sondern mit dem set Befehl
set allowed_WEB basicAuth username passworddamit wird mW nur der HASH im attribute abgelegt.

Aber wenn es unbedingt für Dich Sinn ergibt: Auszug DOku
Zitatfalls er in {} eingeschlossen ist, ein Perl Ausdruck. Für Letzteres wird $user und $passwort gesetzt, und muss wahr zurückliefern, falls Benutzername und Passwort korrekt sind.

Gruß Otto
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 10 Juni 2020, 20:48:55
Hallo Otto,

vielen Danke für Deine Nachricht und die Infos. *Lach*, ich würde sagen, das ich auf die Fragen mit dem Sinn fast schon gewartet habe. Bei mir ändert sich zum Einen öfter das Handy (für Unsereins bleibt es gleich wo wir die Daten eingeben) und andererseits kennt sich außer mir Niemand bei uns damit aus. Meiner Schwester könnte ich das wenn es über FTui läuft erklären und dafür gibt es leider persönliche Gründe (Wenn ich mal nicht mehr so kann fliegt Alles raus oder ich mache es so einfach das es auch ein Nicht-Fhemler bedienen kann).

Werde mir Deine Tips gleich mal anschauen... Internet ist weitgehend abgesichert, so das sich erst mal Jemand in mein VPN oder mein WLAN kommen muss. Ausser dem VPN und 80 für von intern geöffnete Sessions ist nichts offen. Auch da gibts immer Leute, die einen Weg finden... aber so einfach würde es wohl nicht ;-). In erster Linie geht es mir hier um die Bedienbarkeit für Laien, aber die Sicherheit werde ich natürlich nicht ausser acht lassen.

vielen Dank noch einmal für die Tips, ich werde es mir gleich anschauen, Gruß Andy

viele Grüße, Andy

Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Otto123 am 10 Juni 2020, 21:13:04
Wenn Du meinst, dass Du mit dem Dummy eine Art Bedienoberfläche hinbekommst (FTUI hab ich null Ahnung)dann mach irgendwas mit einem notify oder readingsproxy (ich glaub der kann sowas) wo Du nach Änderung der BT Adresse sowas ausführst.
Symbolischer Code.
defmod Pr_Handy1 PRESENCE local-bluetooth <Wert aus Dummy> 60 120
Umsetzung geht z.B. so
{fhem("define Pr_Handy1 PRESENCE local-bluetooth ".ReadingsVal('Dummy','state','00:00:00:00:00:00')." 60 120")}

Und für Benutzername Passwort nimm einen gelben Zettel ;) - oder lass allowed weg

Gruß Otto
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 11 Juni 2020, 02:12:20
Hallo Otto,

defmod funtioniert nur mit der richtigen Adresse... mit dem dummy kommt er nicht zurecht...

Über das Notify von Dir will er immer die fhem.cfg speichern und setzt mir das define auf inaktiv bzw. setzt im Status ???... wenn ich es aktiviere funktioniert es... die MAC setzt er richtig.

Ich hatte schon ein wenig umständlicher, (Variable hätte ich wohl zu Fleiß gemacht) ;-) mit tmpdefine bzw. $defs (als temporäres Device) getestet, um das speichern zu vermeiden...  aber da war das Gleiche wie mit Deinem Notify (MAC ok, aber inaktiv und trotzdem Speichersymbol in fhem):


define tmpdefine cmdalias tmpdefine .* AS define $EVENT;; { $defs{$EVTPART0}{TEMPORARY} = 1;;;; undef }
define Nf_Pr_Handy1 notify global:INITIALIZED {my $Du_Handy1 = Value("Du_Handy1");; fhem ("tmpdefine Pr_Handy1 PRESENCE local-bluetooth $Du_Handy1 10 15")}



Gruß, Andy
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Otto123 am 11 Juni 2020, 08:49:40
Moin,

naja aber das war klar, Du änderst die config. Das musst Du speichern.
Es gibt in FHEM nur ein dynamisches define (von dem ich weiß) das sind temporäre at.

Die erste Zeile in meinem letzten Post war nur symbolischer Code, hätte ich wohl besser dazu schreiben sollen.

Gruß Otto
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 11 Juni 2020, 11:10:33
Bzgl. des BT-Anwesenheits-Problems:

du kannst bei PRESENCE auch eine Funktion angeben, die genutzt wird um die Anwesenheit zu prüfen...
...dort kannst du "dynamisch" die MAC (z.B. aus einem Dummy o.ä.) auslesen und nutzen...

In der Funktion dann eben mittels BT-Funktionen (kommt drauf an was sich bei Handys anbietet ;)  ) abfragen, ob anwesend oder nicht..

Ist nicht schön (und quasi fraglich warum dann überhaupt Presence und nicht einfach ein at ;)  ) wäre aber eine dynamische Möglichkeit OHNE das Fragezeichen...

Evtl. kannst du dich am Code von hping3 orientieren: https://forum.fhem.de/index.php/topic,76342.msg682218.html#msg682218
(ist halt nicht BT sondern ping/arp aber auch nur als "Prinzip" gedacht / wenn BT, dann eben ping und arp durch entsprechende BT-Funktionen ersetzen / lässt sich im Inet bestimmt was passendes finden ;)  )

Dann halt die MAC (und IP) nicht per Aufruf übergeben, sondern eben auch das innerhalb der Sub aus z.B. einem Dummy lesen (ReadingsVal oder AttrVal / je nachdem, ob das im Dummy als Reading steht [setzen z.B. mit setreading Dummyname ReadingName Wert] oder in einem [user]Attribut)...

Gruß, Joachim
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Otto123 am 11 Juni 2020, 11:16:35
Zitat von: Otto123 am 10 Juni 2020, 18:44:20
... die erste Idee geht so nicht. Einzig wenn Du PRESENCE mit einer eigene Funktion ausstattest.
...
War vielleicht zu unscheinbar ;) aber mein allererster Satz. Du hast völlig Recht es nochmal mit einem Beispiel zu unterlegen. Sonst diskutieren wir noch ewig über die Konfigurations Änderung. :)

Die aber im übrigen auch mit dem Dummy vorhanden ist. Nur nicht im roten Fragezeichen sondern im statefile. Das wird von selbst geschrieben wenn FHEM ordentlich beendet wird! Aber wenn man wesentliche Konfigurationsdaten und nicht einfach den letzten Temperaturwert dort ablegt - muß man sich auch darum kümmern. Nicht vergessen :)

Gruß Otto
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 11 Juni 2020, 11:43:26
Hi Otto,

hihi, hatte ich überlesen ;)

Evtl. ja auch der TE ;)

War ja "nur so dahingeschrieben" in einem Satz...

Mal sehen was draus wird...

Gruß, Joachim
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 11 Juni 2020, 13:06:43
Hallo Joachim,

Du schreibst da ja von at. Das scheint mir auf den ersten Blick eine einfache Lösung zu sein wenn man darüber bluetooth abfragen kann.... Meine Fhem- Installation ist schon uralt und ich versuche gerade mit dem verbliebenen Wissen das Ganze aktuell zu gestalten. Oft hat man das nicht so auf dem Schirm... Alexa z.B. ist ja inzwischen total einfach...  und presence hat bei auch immer einwandfrei funktioniert. Deshalb hatte ich das gar nicht in Frage gestellt ;-(... Für bessere Lösungen bin ich immer offen. Jetzt heissts wieder Infos sammeln ;-).

@Otto
Hoffe ich stell mich nicht zu sehr an ;-). Bin nur lange draussen und versuch grad wieder mein Glück.

Gruß, Andy

Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 11 Juni 2020, 13:32:34
So alt kann dein fhem doch nicht sein, wenn alexa-fhem Connector läuft!?

Und auch der "Unterbau" nicht...
...außer das ist auch "alles alt"... ;)
(dann: schade um all die Neuerungen ;) )

Naja, ob du ein at oder PRESENCE nimmst ist fast egal...
...der Hauptaufwand liegt bei beidem darin die "Prüf-Funktion" zu "schreiben" ;)

Ob die dann per at zyklisch aufgerufen wird und entsprechende Readings setzt (das passiert bei PRESENCE halt "automatisch") oder zyklisch per PRESENCE ist dann "Geschmackssache" ;)

Schau dir mal das verlinkte Beispiel an, dann verstehst du was ich meine (so hoffe ich)... ;)

Gruß, Joachim
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 11 Juni 2020, 18:15:45
Hallo Joachim,

auf den Connector habe ich erst vor 1-2 Wochen umgestellt... Fhem sollte auch von meinem Account relativ einfach zu entkoppeln sein... Dachte erst ich müsste den Skill auf Amazon noch einmal basteln... dabei bin ich dann auf den Connector gestoßen und war überrascht das der nach ein paar Minuten lief ;-). Mein Fhem läuft seit irgendwann zwischen 2010- 2012.

Mit den Zugangsdaten hat geklappt... habe jeweils eine Perl-Variable erstellt und die Werte von den Dummys rein... die Variable befüllen dann $user:$passwort muss ich nur noch in Ftui integrieren.

Kann ich im Presence auch Variablen verwenden? Ich habe irgendwas gelesen das es nur z.b. bei at ect möglich ist? Wäre natürlich schön wenn ich die MAC einfach nur in eine Variable setzen müsste ;-o... Für das Beispiel (danke Dir) muss ich erst mal den Kopf freikriegen um mich da reinzudenken (hoffe auch das ich es verstehe). Da werde ich mich wohl morgen mal dransetzen.

viele Grüße, Andy

Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 11 Juni 2020, 18:27:49
Hmmm, wo willst du denn bei PRESENCE Variablen verwenden!?
Im "define" hast du ja schon gemerkt: keine gute Idee ;)


Also es ist doch so (zumindest in dem Beispiel), dass du bei Presence (mit eigener "Prüffunktion") eben angibst welche Sub gerufen werden soll.

Liefert diese 0 ist absent und liefert diese 1 zurück, so ist present (oder so ähnlich)...

Da es die gewünschte Sub ja noch nicht fertig gibt (denke ich ;)  ), kannst du dort tun "was du willst" :)

Beispiel ("echter Code gemischt mit Pseudo-Code" ;)  ):


sub CheckPresence
{
  # wenn du einen Dummy "Mac-Dummy" hast, wo im Reading MAC die MAC-Adresse steht
  my $MAC = ReadingsVal("Mac-Dummy","MAC","");

  # wenn du einen Dummy "Mac-Dummy" hast, wo im (user)Attribut MAC die MAC-Adresse steht
  my $MAC = AttrVal("Mac-Dummy","MAC","");

return Check-Mac($MAC); # ;)
}


Du kannst auch dem Aufruf Parameter übergeben, z.B. den Dummy-Namen wo eben die jeweilige MAC für den entsprechenden Aufruf drin steht.
Dann hast du nur eine "CheckPresence" Sub für alle PRESENCE-Devices und du übergibst jeweils eben den entsprechenden Dummy...
Oder du hast einen "Sammeldummy" mit verschiedenen Readings und übergibst den Reading-Namen...

Wie du es dann machen willst hängt halt davon ab WAS GENAU du WIE bzw. WO haben willst...


Und: dann mal los und Perl lernen ;)

Der Teil "Check-Mac", den ich einfach so reingeschrieben hab ist halt dann der interessante Teil, also wie willst du die MAC etc. prüfen auf Anwesenheit... ;)

Im verlinkten Beispiel wird dann IN der Check-Sub, die von PRESENCE aufgerufen wird "sogar" auf "Systemebene" hinabgestiegen für die tatsächliche Prüfung...

Also erst einmal die teile zusammen sammeln, sich eine "Architektur" (bzw. zumindest gewünschten Ablauf etc.) überlegen und dann: los! :)

Gruß, Joachim
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 11 Juni 2020, 22:40:13
Hallo Joachim,

danke für die Mühe mit dem Beispiel ;-). Ich würde den ersten Weg mit der Readingsval. Oben im Notify hatte ich schon mit Variablen getestet. Hier allerdings direkt im Notify und das hat auch funktioniert... nur wollte er halt immer speichern. Mit den Variablen über die myutils check ich nicht so recht wie und wann ich in fhem zugreifen kann. Ich hatte da schon unter dem Sub "myUtils_Initialize" als "our" definiert... denke Du hast recht... noch mehr lesen ;-)... Da fehlt mir noch das Verständnis bezüglich Variablen. Wenn ich es das erste Mal zum Laufen krieg wird es leichter zu verstehen.

Wenn es irgendwie geht würde ich am Liebsten das vorhandene Presence nur abändern, damit statt der fest eingetragene MAC über einen machbaren Weg der Wert eines Dummys (in dem die MAC steht) eingetragen wird.

viele Grüße, Andy
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 11 Juni 2020, 22:59:38
Ja mal lesen im Wiki bzgl. myUtils!

Eigentlich ganz einfach (siehe verlinktes Beispiel):

Du gibt im PRESENCE-Device beim Anlegen eine Funktion/Sub an, die von eben diesem Modul zyklisch "gerufen" wird.

In dieser Funktion liest du eben aus deinem/deinen Dummy/Dummies die jeweilige MAC (oder was immer du brauchst um Anwesenheit zu prüfen) aus (ReadingsVal / AttrVal)

Wie du die MAC in den Dummy bekommst per UI weißt du ja offenbar/hoffentlich, weil das war ja der Grund für diese "Umstände" ;)

Wenn du dann in der Sub die MAC (oder was auch immer brauchst) hast, dann musst du damit IN dieser selben Sub eben Anwesenheit prüfen und entsprechend 0 oder 1 zurückgeben...

Die Anwesenheit: present/absent (und das zyklische Rufen etc.) übernimmt dann das PRESENCE-Device... :)

Du kannst/musst ja (wie bereits geschrieben) für jedes Handy (oder was auch immer) ein eigenes PRESENCE-Device anlegen und da kannst du ja als Parameter an die Funktion was übergeben, was der Sub "sagt" welche MAC (oder was auch immer) ausgelesen werden soll...

Allerdings, wenn du noch so am Anfang stehst ist es fraglich, ob du gleich so komplizierte Dinge umsetzen solltest ;)


EDIT: evtl. laut Wiki/basierend auf Template eine myUtils anlegen und dort dann einfach eine einfache Sub, die evtl. erst mal nur mittels ReadingsVal etwas ausliest und einfach per return zurück gibt. Aufrufen kannst du sie ja zum Test in FhemWeb-cmd wie folgt: { meineSub() }  (geschweifte Klammer -> wechsel nach Perl, dann Aufruf der Sub und dann Klammer zu / mehr über Klammern gibt's auch ein Wiki zu ;) )... Wenn du sie so testest, dann sollte auf der Weboberfläche von fhem der Wert des per ReadingsVal ausgelesenen Wertes stehen, simpel aber du lernst... ;)


Also wenn du weißt wie du die Anwesenheit prüfen kannst (also im "simplen Beispiel" CheckMac ;) ) und deine Dummy für die einfach MAC-Eingabe hast, dann kannst du die Sachen hier posten und wir kriegen das dann schon leicht hin...

Was ich halt nicht weiß (daher nicht helfen kann): wie willst du Anwesenheit prüfen (also welcher Mechanismus)
Und: wie sieht/sehen dein/deine MAC-Dummy aus ;)

Viel Erfolg, Joachim
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 11 Juni 2020, 23:40:55
Hallo Joachim,

das hört sich schon sehr komplex an :-\ ... also wie ich das lese müsste ich in dem Sub dann prüfen?  Dann müsste ich meine alte Steuerung komplett erneuern... oder statt dem local-bluethooth dann eine erstellte Funktion an presence übergeben Hatte mir gedacht, da es nur um die MAC als Variable geht könnte ich sonst Alles lassen.


define Pr_Handy1 PRESENCE local-bluetooth XX:XX:XX:XX:XX:XX 60 120


Wollte eigentlich "nur" an der Stelle mit den XX die Mac eben mit dem Wert vom Dummy ersetzen. Der Dummy ist ein ganz einfach erstellter Dummy, der im State die MAC genau so wie Presence sie erwartet steht.

Im Fhem arbeite ich sowieso damit, aber interne übrgebe ich ja nur die Dummys und die funktionieren im Presence nicht... und bei der Mailfunktion in der myutils frage ich die Dummys ab, gebe sie aber (glaube ich) nicht in fhem zurück, sondern werden an sendmail übergeben... und so fehlt mir der Weg von myutils nach fhem den Wert einer Variablen einfügen zu können....

Bei Ftui die Dummy-Werte über Freitext oder Dropdown zu ändern ist relativ einfach... mache ich schon bei den Jalousien, Heizung, Heizzeiten ect.... 

viele Grüße, Andy

Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 12 Juni 2020, 00:05:19
So einmal noch und dann "kann ich nicht mehr" ;)

Also was du nutzt ist Standard BT-PRESENCE.

Die ist halt wie sie ist!
Wenn du was anders haben willst: programmier das Modul um... ;)

Du kannst ja wie von Otto vorgeschlagen die MAC aus einem Dummy auslesen und beim define angeben.
Der define wird aber halt EINMALIG gemacht (normalerweise). So ist das Modul eben.

Wenn du in einem Dummy dann eine MAC änderst ist das dem BT-Presence-Device egal, es ist ja bereits definiert/angelegt.
Einziges was hilft: notify auf MAC-Änderung und ein "redefine" (defmod) des bestehenden BT-Presence-Device -> rotes Fragezeichen, weil ja cfg-Änderung...


Alternative OHNE cfg-Änderung:

die bestehenden Presence-Devices ändern in Funktionsprüfung (siehe anfangs verlinktes Beispiel).
Alles was auf DIESE Presence-Devices "hört" (also alle daran hängenden Automatismen) können UNVERÄNDERT bleiben (sofern du den Namen nicht änderst ;)  )!

ABER: du musst eben die Anwesenheitsprüfung selbst implementieren, weil das Presence mit eigener Funktion halt "nur" diese zyklisch aufruft und halt den Status zur Verfügung stellt (der von der Funktion/Sub gemeldet wird)...

In dieser Sub kannst du jedes Mal (wenn das Presence Modul sie aufruft) aus dem Dummy per ReadingsVal/AttrVal/... die jeweilige MAC auslesen und dann eben mit GENAU dieser (immer aktuellen, weil immer as dem Dummy gelesen) prüfen.

So schwer sollte eine BT-MAC erkennung nicht, auf Linux gibt es genug "Shell-Tools"...
D.h. das was dann in dem verlinkten Beispiel im presence.sh passiert musst du halt umändern in BT-Aufrufe (also statt hping3 und arp-irgendwas halt z.B. hcitool scan: https://www.pcsuggest.com/linux-bluetooth-setup-hcitool-bluez/   und "schauen", ob die gesuchte MAC dabei ist -> present 1 zurück oder eben nicht -> absent 0 zurück geben  /  und Code für prüfen, ob eine MAC dabei ist, ist ja in dem Codebeispiel [presence.sh] ja auch schon drin ;)  )...


Und wie halt immer: wenn man etwas will, was eben etwas "neben dem Normalen" ist, dann muss man halt ein wenig Arbeit reinstecken...
...oder den einfachen (aber nicht schönen Weg) gehen und mit dem roten Fragezeichen leben (oder eben ein "autom. save" dahinter schicken mit allen Risiken die es geben kann [also es wird was gespeichert, was man eigentlich nicht speichern wollte etc. ;)  ]  )


Weitere Alternative: du findest jemanden, der genau dieselbe "exotische" Anwendung hat und sich bereits besser auskennt und es einfach mal "runterprogrammiert"... ;)

EDIT: weitere Hilfe kann ich leider erst (wieder) geben, wenn konkrete Fragen/Probleme auftreten. Dann gerne wieder melden :)

Gruß und viel Erfolg, Joachim
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 12 Juni 2020, 14:46:32
Hallo Joachim und Otto,

hatte da echt ein Brett vor dem Kopf  ::).  Ihr hattet mir ja eh schon Alles fast aufs Brot geschmiert. Läuft nun bei mir... Vielen Dank an Euch für Eure Geduld ;-)!

anbei noch die angepasste Lösung falls das Jemand benötigen kann:

presence.sh Script:


#!/bin/bash

declare -a DEVICES
DEVICES=`hcitool name $1`
if [[ ${DEVICES[*]} > 0 ]]
then
echo "1"
else
echo "0"
fi



dann das Sub:


sub CheckPhoneBt($)
{
  my ($mac)= @_;
  my $ret = "";

  $mac = lc($mac);

  $ret = qx(/opt/fhem/FHEM/presence.sh $mac);

  if ( $ret != 0 && $ret != 1) {
    Log3 "CheckPhoneBt", 2, "CheckPhoneBt: $ret";
    return 0;
  }

  $ret =~ s,[\r\n]*,,g;        # remove CR from return-string

  return $ret;

}



und die Abfrage im presence über einen Dummy:

function {CheckPhoneBt(Value("HandyBtMac1"))} 60 120


viele Grüße, Andy
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 12 Juni 2020, 15:23:14
Hi Andy,

da bin ich aber froh, dass das Brett weg ist...
...und dann praktisch komplett ohne weitere Hilfe (plötzlich)... :)

Packst du noch ein [gelöst] vor den ersten Post, danke.

Viel Spaß damit, Joachim
Titel: Antw:fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 12 Juni 2020, 15:26:42
Äh, aber wo ist jetzt die Flexibilität!?

Ich sehe nirgendwo eine dynamische "Abfrage" der MAC!!?

Oder hab ich das auf dem Handydisplay nur "übersehen"!?

Gruß, Joachim
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 12 Juni 2020, 15:46:44
Über Fhem gebe ich (steht im Dummy) die Bluetooth-Mac mit (könnte natürlich auch direkt die MAC sein).... im Sub rufe ich hcitool mit der Option "Name" auf und schicke die Bluetooth-Mac als $1 mit. Hcitool gibt mir den Namen zurück, wenn die MAC nicht gefunden wird bleibt sie leer... Wert 1 oder 0 . Flexibel ist nur die BT-MAC, mehr brauche ich ja bei Bluetooth nicht... ich habs nicht richtig gelesen, MAC ist dynamisch... fällt nur nicht auf weil ich die erst über den Dummy hole ;-)

function {CheckPhoneBt("XX:XX:XX:XX:XX:XX")} 60 120

MAC darf nur nicht 00:00:00:00:00:00 sein (bei nicht genutzem Handy)


viele Grüße, Andy



 
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 12 Juni 2020, 15:57:50
Ah nö, sorry, hatte nur das "Value()" überlesen... ;)

Allerdings: Value "frägt" STATE ab! Nicht state und eben KEIN Reading...

Daher nehme ich das nie...
...sondern lieber ReadingsVal, dann weiß ich was ich "lese" und krieg auch mit ("Ersatzwert"), wenn was "schräg" läuft...

STATE "gehört" dem Modul, ist meist gleich state (aber nicht immer) und kann "beeinflusst" sein (z.B. stateFormat)...

Nur falls du dich mal "wunderst" warum plötzlich keine (passende) MAC mehr kommt... ;)

Bei einem Dummy nicht so wild...
...aber bei "komplexeren" Modulen hat sich schon manch einer gewundert, was er denn da bekommt bzw. was denn "schief" läuft...

Weitere Anmerkung (hatte ich schon mal genannt ;)  ): evtl. überlegen einen Dummy mit je einem Reading pro Gerät/MAC und dann Abfrage mit ReadingsVal...

Sparst du ein paar dummy ;)
Und ist evtl. übersichtlicher nur einen dummy zu haben wo alle MAC drin stehen...
Einzelne Readings EINES Devices sollten sich doch auch (ganz einfach) per FTUI (oder sonstwas Grafik) "einstellen" lassen!?
Aber musst nat. du wissen... ;)

Gruß, Joachim
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 12 Juni 2020, 16:08:22
Hallo Joachim,

das ist ein gute Idee.... akutell frage ich überall nur den STATE ab. Im FTUI wird das sicher auch recht einfach gehen, schau ich mir auf jeden Fall an.

Jetzt habe ich nur noch das Problem, daß ich den Hash von Alexa mit dem Zugang zur Weboberfläche mit updaten muss.. da werde ich noch ein notify machen... und dann gehts ans überarbeiten der Dummys ;-)

viele Grüße, Andy
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 12 Juni 2020, 16:22:58
Hash von Alexa??

Was musst du da denn tun!?

Welches Alexa!? ;)

alexa-fhem Connector (hoffe nicht "das alte Zeugs"! ;)  )

oder echodevice-Modul?

Wobei ich jetzt bei beidem nicht wüsste wo da ein hash oder was anderes übergeben werden müsste...

Gruß, Joachim
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 13 Juni 2020, 14:19:18
Hallo Joachim,

ich bin gestern doch erst das mit den Dummy's angegangen. Einige Dinge sind schon umgestellt, unter Anderem die MAC's für die Anwesenheitserkennung... war eine super Idee und klappt auch mit Ftui problemlos ;-). Die alte Alexa habe ich ja vor Kurzem auf den Connector umgestellt.... ich habe doch die Änderung der Anmeldedaten im FhemWeb. Nach der Änderung dort funktioniert natürlich Alexa nicht mehr weil sie ja auch mit den Anmeldedaten arbeitet (wenn man das Web geschützt hat übernimmt er anscheinend die Daten, aber nach einer Änderung startet der Connector erst nach Eingabe der neuen Credentials. Über die Änderung des Attributes


attr alexa alexaFHEM-auth username:passwort


müssen dann die Login-Daten auch für Alexa neu generiert werden und dann läuft wieder Alles. Mal sehen ob ich da die Dummys reinsetzten kann oder eine Funktion erstellen muss. Eigentlich wäre es ja in Fhem und sollte auch über fhem funktionieren... aber ich weis nicht was im Background passiert... Will das dann in ein notify bei Änderung der Dummys setzen.

viele Grüße, Andy
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 13 Juni 2020, 14:39:44
Hallo Joachim,

falls Du das aus dem stehgreif weist... kann ich die setlist auch auf readings der Dummy's verwenden? Ich hatte ja bisher auch Dummy's für Heizung, Jalousien (Zeiten, Temperaturen, Absenkungen) ect., welche ich auch ganz gern umstellen würde. Allerdings verwende ich für die Einstellungen Drop-Downs im Ftui, die auf die setlist zugreifen.

Wenn ich das mit dem Hash bei Alexa hinbekomme kann ich das ja auch bei dem webauth machen... dann muss sich schon Jemand in den Code hineinversetzen um herauszufinden welches reading von welchem Dummy verwendet wird ;-).

viele Grüße, Andy
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 13 Juni 2020, 15:59:18
So, Alexa funktioniert nach PW-Wechsel über das Notify. Leider sehe ich keine Möglichkeit das variabel zu gestalten...:


sub ChangeCredAlexa()
{
  my ($wuser)= @_;
  my ($wpwd)= @_;
  my $ret = "";

  $wuser = ReadingsVal("Du_FhemWeb","FhemWebUser","");
  $wpwd = ReadingsVal("Du_FhemWeb","FhemWebPwd","");

  $ret = fhem("attr alexa alexaFHEM-auth $wuser:$wpwd");

  $ret =~ s,[\r\n]*,,g;        # remove CR from return-string

  return $ret;

}


Notify Jeweils auf User und Passwort:


Du_FhemWeb:FhemWebUser:* {ChangeCredAlexa()}



Muss ich also für Fhemweb extra schauen...

Gruß, Andy
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 13 Juni 2020, 17:09:39
Hi Andy,

eieiei, ganu schön viel passiert...

Muss ich mir mal in Ruhe durchlesen...

Dauert aber bissi, bin grad untetwegs...

Gruß, Joachim
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 14 Juni 2020, 00:26:42
Zitat von: Andy_C am 13 Juni 2020, 14:19:18
Hallo Joachim,

ich bin gestern doch erst das mit den Dummy's angegangen. Einige Dinge sind schon umgestellt, unter Anderem die MAC's für die Anwesenheitserkennung... war eine super Idee und klappt auch mit Ftui problemlos ;-). Die alte Alexa habe ich ja vor Kurzem auf den Connector umgestellt.... ich habe doch die Änderung der Anmeldedaten im FhemWeb. Nach der Änderung dort funktioniert natürlich Alexa nicht mehr weil sie ja auch mit den Anmeldedaten arbeitet (wenn man das Web geschützt hat übernimmt er anscheinend die Daten, aber nach einer Änderung startet der Connector erst nach Eingabe der neuen Credentials. Über die Änderung des Attributes


attr alexa alexaFHEM-auth username:passwort


müssen dann die Login-Daten auch für Alexa neu generiert werden und dann läuft wieder Alles. Mal sehen ob ich da die Dummys reinsetzten kann oder eine Funktion erstellen muss. Eigentlich wäre es ja in Fhem und sollte auch über fhem funktionieren... aber ich weis nicht was im Background passiert... Will das dann in ein notify bei Änderung der Dummys setzen.

viele Grüße, Andy

Du könntest auch ein zweites FHEMWEB-Device mit anderem Port und fixen Zugangsdaten anlegen, den anderen Port dann in die alexa-fhem.cfg eintragen...
...und die fixen Zugangsdaten dann einmalig setzen und gut...

Bzw. warum änderst du (so oft) und über dummy!? Wie sicher ist das denn!? Die Zugangsdaten!?

Also nur damit ich verstehe was du warum so tust ;)

Gruß, Joachim
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 14 Juni 2020, 00:28:53
Zitat von: Andy_C am 13 Juni 2020, 14:39:44
Hallo Joachim,

falls Du das aus dem stehgreif weist... kann ich die setlist auch auf readings der Dummy's verwenden? Ich hatte ja bisher auch Dummy's für Heizung, Jalousien (Zeiten, Temperaturen, Absenkungen) ect., welche ich auch ganz gern umstellen würde. Allerdings verwende ich für die Einstellungen Drop-Downs im Ftui, die auf die setlist zugreifen.

Wenn ich das mit dem Hash bei Alexa hinbekomme kann ich das ja auch bei dem webauth machen... dann muss sich schon Jemand in den Code hineinversetzen um herauszufinden welches reading von welchem Dummy verwendet wird ;-).

viele Grüße, Andy

Hi Andy,

ganz ehrlich: Bahnhof ;)

Sorry...
...und es liegt glaube ich nicht an der Uhrzeit ;)

Gruß, Joachim
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: MadMax-FHEM am 14 Juni 2020, 00:30:47
Zitat von: Andy_C am 13 Juni 2020, 15:59:18
So, Alexa funktioniert nach PW-Wechsel über das Notify. Leider sehe ich keine Möglichkeit das variabel zu gestalten...:


sub ChangeCredAlexa()
{
  my ($wuser)= @_;
  my ($wpwd)= @_;
  my $ret = "";

  $wuser = ReadingsVal("Du_FhemWeb","FhemWebUser","");
  $wpwd = ReadingsVal("Du_FhemWeb","FhemWebPwd","");

  $ret = fhem("attr alexa alexaFHEM-auth $wuser:$wpwd");

  $ret =~ s,[\r\n]*,,g;        # remove CR from return-string

  return $ret;

}


Notify Jeweils auf User und Passwort:


Du_FhemWeb:FhemWebUser:* {ChangeCredAlexa()}



Muss ich also für Fhemweb extra schauen...

Gruß, Andy

Hi Andy,

wenn du das noch brauchst nachdem du das mit dem extra FHEMWEB nur für alexa-fhem gelesen hast, dann schaue ich mir das an und versuche zu helfen...
...wenn du es danach nicht mehr für sinnvoll erachtest, dann lasse ich das vermutlich ;)

Gruß, Joachim
Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 14 Juni 2020, 01:07:53
Hallo Joachim,

für Alexa-fhem funktioniert so schon mal die Synchronisierung mit dem Web  und das setzen über Readings in einem Dummy im Ftui auch... (ich hatte es nur mit den Passwörtern in der Funktion versucht, aber das ging nicht... muss wohl als komplettes Kommando geschickt werden)... da könnte ich das Komando selbst höchstens als Variable in die Funktion übergeben... aber so erst mal reicht mir das so aus, da ich ja von Aussen eh nur über VPN erreichbar bin... wenn ich die Dummys erledigt habe und nicht zurechtkommen sollte würde ich mich deshalb noch mal melden wenn das ok ist?

Mit den Dummys hast Du mich auf eine Idee gebracht... das werde ich als Erstes weiter zusammenfassen (ich habe einige Dummys). Die sind ja nur in der fhem.save gespeichert? Da muss ich mir noch ansehen ob ich das mit den setlists irgendwie umsetzen kann... wenn ich auf die Hauptliste vom Dummy zugreifen könnte würde mir das reichen... ansonsten kann ich so eine Art setlist auch über Ftui erstellen (hätte es halt gern auch in Verbindung mit dem Dummy/Reading).... ich schreib hier auf jeden Fall hier rein sobald ich eine Lösung habe.

erst mal vielen Dank für Deine Hilfe!

viele Grüße, Andy

Titel: Antw:***gelöst*** fhem Auslagerung von Dummy-Werten Zugang Web/MAC für Anwesenheit
Beitrag von: Andy_C am 17 Juni 2020, 18:47:59
Hi Joachim,

wollte nur mal schnell eine Zwischenmeldung geben.... das Zusammenfassen der Dummy's (und da hatte ich Einige), hat nicht nur mehr Ordnung... sondern auch Geschwindigkeit gebracht.... war ein wirklich genialer Tip! Die Auth muss leider noch warten, da ich mich jetzt mit einer Fehlermeldung von Alexa herumschlage (neuer Thread) ....


Gruß, Andy