FOSHKplugin: Einbinden externer Datenquellen - Sensoren emulieren

Für Geräte von froggit
rsgaf
Offline
Beiträge: 17
Registriert: 16 Aug 2021, 15:32
Hat sich bedankt: 3 mal

Re: FOSHKplugin: Einbinden externer Datenquellen - Sensoren emulieren

#11

Beitrag von rsgaf »

Hi,

hab die Zeile eingefügt und das Script manuell ausgeführt:

Code: Alles auswählen

pi@raspberrypi:/opt/FOSHKplugin $ addScript.sh dies=das&jenes=nix
[1] 23003
pi@raspberrypi:/opt/FOSHKplugin $ bash: addScript.sh: Kommando nicht gefunden.
Neugierhalber habe ich auch mal nur das Script ohne dies=das&jenes=nix ausgeführt:

Code: Alles auswählen

i@raspberrypi:/opt/FOSHKplugin $ sudo ./addScript.sh
*<?xml version='1.0' encoding='ISO-8859-1' ?><state><datapoint ise_id='HmIP-RF.002762698ABB74:1.RAINING' value='false'/></state>*
&srain_piezo=0
pi@raspberrypi:/opt/FOSHKplugin $ 
HP2550, GW3000A, WH2650A
WS68, WN31, WN32-EP, WN32P, WN34L, WH40H, WH41, WH46D, WH51, WH55, WH57, LDS01
SIAP SMarTCELLino
WeeWX 5.1, FOSHKplugin
Fischer Typ 104, Greisinger G 1110, Starpath USB Baro
Benutzeravatar
olicat
Offline
Beiträge: 2389
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 42 mal
Danksagung erhalten: 480 mal
Kontaktdaten:

Re: FOSHKplugin: Einbinden externer Datenquellen - Sensoren emulieren

#12

Beitrag von olicat »

Hi!

Der Aufruf sollte schon dieser sein:

Code: Alles auswählen

sudo ./addScript.sh dies=das&jenes=nix
Ansonsten sieht die Antwort doch deutlich anders aus als gestern mitgeteilt.
Das Script sucht den Substring value="true" - Deinem Beitrag nach wird das value aber nicht in doppelten sondern in einfachen Anfruehrungszeichen geschickt: value='true".
Somit muss man dann natuerlich auch danach innerhalb des Scriptes suchen:

Code: Alles auswählen

#!/bin/bash
# name this script addScript.sh and place it in the FOSHKplugin directory
# make script executable - chmod ug+x addScript.sh
# use in config file as Export\ADD_SCRIPT = ./addScript.sh

# the original output data from FOSHKplugin
instr="$@"

# address to gather the state from
address="http://foshkplugin.phantasoft.de/temp/rsgaf.html?sid=INSERTTOKEN&datapoint_id=HmIP-RF.002762698ABB74:1.RAINING"

# if sensor outputs 0 for no rain and 1 for is raining via http call
statetext=`curl -s $address`

#echo *"$statetext"*

if [ ! -z "${statetext}" ]; then 
  if [[ $statetext == *"value='true'"* ]]; then
    statestring="&srain_piezo=1"
  else
    statestring="&srain_piezo=0"
  fi
fi

# merge the original string with the new components
echo "${instr}${statestring}"
Oliver
rsgaf
Offline
Beiträge: 17
Registriert: 16 Aug 2021, 15:32
Hat sich bedankt: 3 mal

Re: FOSHKplugin: Einbinden externer Datenquellen - Sensoren emulieren

#13

Beitrag von rsgaf »

Hi,

Code: Alles auswählen

Ansonsten sieht die Antwort doch deutlich anders aus als gestern mitgeteilt.
Das Script sucht den Substring value="true" - Deinem Beitrag nach wird das value aber nicht in doppelten sondern in einfachen Anfruehrungszeichen geschickt: value='true".
Sorry dafür, war keine Absicht. Das wird mir leider so in jedem Browser ausgegeben:
Unbenannt.PNG
Unbenannt.PNG (17.7 KiB) 116 mal betrachtet

Mit dem angepassten Script bekomme ich leider gar keine Ausgabe:

Oh man, aus versehen einen Absatz doppelt in das Script kopiert....
Jetzt funktioniert alles wie es soll.

Vielen Dank für Deine Hilfe und Geduld!
HP2550, GW3000A, WH2650A
WS68, WN31, WN32-EP, WN32P, WN34L, WH40H, WH41, WH46D, WH51, WH55, WH57, LDS01
SIAP SMarTCELLino
WeeWX 5.1, FOSHKplugin
Fischer Typ 104, Greisinger G 1110, Starpath USB Baro
Benutzeravatar
olicat
Offline
Beiträge: 2389
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 42 mal
Danksagung erhalten: 480 mal
Kontaktdaten:

Re: FOSHKplugin: Einbinden externer Datenquellen - Sensoren emulieren

#14

Beitrag von olicat »

Hi!

Vermutlich musst Du die address noch entsprechend anpassen?
In Zeile 15 kannst Du versuchsweise das # am Anfang der Zeile entfernen, damit wir den Inhalt der Variable statetext angezeigt bekommen.
Das wird mir leider so in jedem Browser ausgegeben:
Interessant. Mir war nicht bewusst, dass Browser den Inhalt anders anzeigen koennen als curl.
Massgeblich ist aber, was curl sieht.

Ah, schon erledigt. Wunderbar.

Oliver
Antworten