summaryrefslogtreecommitdiffstats
path: root/makefu
diff options
context:
space:
mode:
authorJeschli <jeschli@gmail.com>2020-04-14 20:36:21 +0200
committerJeschli <jeschli@gmail.com>2020-04-14 20:36:21 +0200
commite5342b25c149f05db86983f3785ee395c156b435 (patch)
treee45270c08010c48c27a22643bd9a3a343b880eae /makefu
parent290b6a542527a0a48c11fc2b00aee2b4d7f7df06 (diff)
parent843a537bd7fbedd8eb5fd61a1172dd8229440606 (diff)
Merge branch 'master' of https://cgit.lassul.us/stockholm
Diffstat (limited to 'makefu')
-rw-r--r--makefu/1systems/gum/config.nix18
-rw-r--r--makefu/1systems/omo/config.nix40
-rw-r--r--makefu/1systems/omo/hw/omo.nix11
-rw-r--r--makefu/1systems/omo/source.nix1
-rw-r--r--makefu/1systems/x/config.nix4
-rw-r--r--makefu/2configs/bureautomation/automation/daily-news.nix20
-rw-r--r--makefu/2configs/bureautomation/automation/quotes.nix4
-rw-r--r--makefu/2configs/bureautomation/automation/schlechteluft.nix3
-rw-r--r--makefu/2configs/bureautomation/camera/stuttgart.nix26
-rw-r--r--makefu/2configs/bureautomation/default.nix21
-rw-r--r--makefu/2configs/bureautomation/deps/aresponses.nix38
-rw-r--r--makefu/2configs/bureautomation/multi/10h_timers.nix59
-rw-r--r--makefu/2configs/bureautomation/multi/daily-standup.nix4
-rw-r--r--makefu/2configs/bureautomation/multi/frosch.nix6
-rw-r--r--makefu/2configs/bureautomation/multi/mittagessen.nix6
-rw-r--r--makefu/2configs/bureautomation/person/team.nix19
-rw-r--r--makefu/2configs/bureautomation/puppy-proxy.nix5
-rw-r--r--makefu/2configs/bureautomation/script/multi_blink.nix12
-rw-r--r--makefu/2configs/bureautomation/stream/puppies.nix4
-rw-r--r--makefu/2configs/default.nix5
-rw-r--r--makefu/2configs/deployment/board.euer.krebsco.de.nix15
-rw-r--r--makefu/2configs/deployment/docker/archiveteam-warrior.nix39
-rw-r--r--makefu/2configs/deployment/gecloudpad/default.nix43
-rw-r--r--makefu/2configs/deployment/gecloudpad/gecloudpad.nix24
-rw-r--r--makefu/2configs/deployment/rss.euer.krebsco.de.nix14
-rw-r--r--makefu/2configs/ham/androidtv/adbshell.nix38
-rw-r--r--makefu/2configs/ham/androidtv/default.nix30
-rw-r--r--makefu/2configs/ham/androidtv/purepythonadb.nix21
-rw-r--r--makefu/2configs/ham/automation/firetv_restart.nix33
-rw-r--r--makefu/2configs/ham/default.nix152
-rw-r--r--makefu/2configs/ham/google-muell.nix (renamed from makefu/2configs/homeautomation/google-muell.nix)0
-rw-r--r--makefu/2configs/ham/lib/default.nix44
-rw-r--r--makefu/2configs/ham/mqtt.nix (renamed from makefu/2configs/homeautomation/mqtt.nix)0
-rw-r--r--makefu/2configs/ham/multi/flurlicht.nix57
-rw-r--r--makefu/2configs/ham/multi/kurzzeitwecker.nix132
-rw-r--r--makefu/2configs/ham/multi/zigbee2mqtt.nix129
-rw-r--r--makefu/2configs/ham/sensor/outside.nix20
-rw-r--r--makefu/2configs/ham/zigbee2mqtt/default.nix20
-rw-r--r--makefu/2configs/home-manager/mail.nix18
-rw-r--r--makefu/2configs/home-manager/zsh.nix61
-rw-r--r--makefu/2configs/homeautomation/default.nix305
-rw-r--r--makefu/2configs/hw/bluetooth.nix6
-rw-r--r--makefu/2configs/hw/cc2531.nix10
-rw-r--r--makefu/2configs/main-laptop.nix9
-rw-r--r--makefu/2configs/minimal.nix6
-rw-r--r--makefu/2configs/mqtt.nix2
-rw-r--r--makefu/2configs/nginx/rompr.nix1
-rw-r--r--makefu/2configs/nur.nix6
-rw-r--r--makefu/2configs/sickbeard/cheetah3.nix25
-rw-r--r--makefu/2configs/sickbeard/debug.patch91
-rw-r--r--makefu/2configs/sickbeard/sickgear.nix14
-rw-r--r--makefu/2configs/stats/arafetch.nix4
-rw-r--r--makefu/2configs/stats/external/aralast.nix5
-rw-r--r--makefu/2configs/tools/extra-gui.nix1
-rw-r--r--makefu/2configs/tools/mobility.nix3
-rw-r--r--makefu/2configs/tools/studio.nix2
-rw-r--r--makefu/5pkgs/cc-tool/default.nix32
-rw-r--r--makefu/5pkgs/custom/hydra-check/default.nix19
-rw-r--r--makefu/5pkgs/custom/liveproxy/default.nix30
-rw-r--r--makefu/5pkgs/default.nix2
-rw-r--r--makefu/5pkgs/libcoap/default.nix27
-rw-r--r--makefu/5pkgs/pico2wave/default.nix51
-rw-r--r--makefu/5pkgs/studio-link/default.nix21
-rw-r--r--makefu/krops.nix8
64 files changed, 1311 insertions, 565 deletions
diff --git a/makefu/1systems/gum/config.nix b/makefu/1systems/gum/config.nix
index 3b084d35a..8603d7696 100644
--- a/makefu/1systems/gum/config.nix
+++ b/makefu/1systems/gum/config.nix
@@ -21,11 +21,12 @@ in {
];
};
}
+ <stockholm/makefu/2configs/nur.nix>
<stockholm/makefu/2configs/support-nixos.nix>
<stockholm/makefu/2configs/home-manager>
<stockholm/makefu/2configs/home-manager/cli.nix>
# <stockholm/makefu/2configs/stats/client.nix>
- <stockholm/makefu/2configs/stats/netdata-server.nix>
+ # <stockholm/makefu/2configs/stats/netdata-server.nix>
<stockholm/makefu/2configs/headless.nix>
<stockholm/makefu/2configs/smart-monitor.nix>
@@ -89,8 +90,8 @@ in {
# services
# <stockholm/makefu/2configs/sabnzbd.nix>
- <stockholm/makefu/2configs/mail/mail.euer.nix>
- { krebs.exim.enable = mkForce false; }
+ # <stockholm/makefu/2configs/mail/mail.euer.nix>
+ { krebs.exim.enable = mkDefault true; }
# sharing
<stockholm/makefu/2configs/share/gum.nix>
@@ -119,7 +120,7 @@ in {
<stockholm/makefu/2configs/urlwatch>
# Removed until move: avoid letsencrypt ban
### Web
- #<stockholm/makefu/2configs/nginx/share-download.nix>
+ <stockholm/makefu/2configs/nginx/dl.euer.krebsco.de.nix>
#<stockholm/makefu/2configs/nginx/euer.test.nix>
<stockholm/makefu/2configs/nginx/euer.mon.nix>
<stockholm/makefu/2configs/nginx/euer.wiki.nix>
@@ -131,10 +132,14 @@ in {
# <stockholm/makefu/2configs/nginx/gold.krebsco.de.nix>
# <stockholm/makefu/2configs/nginx/iso.euer.nix>
- <stockholm/makefu/2configs/deployment/photostore.krebsco.de.nix>
+ # <stockholm/makefu/2configs/deployment/photostore.krebsco.de.nix>
<stockholm/makefu/2configs/deployment/graphs.nix>
<stockholm/makefu/2configs/deployment/owncloud.nix>
+ <stockholm/makefu/2configs/deployment/board.euer.krebsco.de.nix>
+ <stockholm/makefu/2configs/deployment/rss.euer.krebsco.de.nix>
<stockholm/makefu/2configs/deployment/boot-euer.nix>
+ <stockholm/makefu/2configs/deployment/gecloudpad>
+ <stockholm/makefu/2configs/deployment/docker/archiveteam-warrior.nix>
<stockholm/makefu/2configs/shiori.nix>
<stockholm/makefu/2configs/bgt/download.binaergewitter.de.nix>
@@ -171,7 +176,8 @@ in {
services.nginx.virtualHosts."cgit.euer.krebsco.de" = {
forceSSL = true;
enableACME = true;
- locations."/".proxyPass = "http://cgit.gum.r";
+ locations."/".proxyPass = "http://localhost/";
+ locations."/".extraConfig = ''proxy_set_header Host cgit;'';
};
krebs.build.host = config.krebs.hosts.gum;
diff --git a/makefu/1systems/omo/config.nix b/makefu/1systems/omo/config.nix
index 9b9b91a6f..37fb9128d 100644
--- a/makefu/1systems/omo/config.nix
+++ b/makefu/1systems/omo/config.nix
@@ -57,7 +57,7 @@ in {
<stockholm/makefu/2configs/stats/telegraf>
# <stockholm/makefu/2configs/stats/telegraf/europastats.nix>
<stockholm/makefu/2configs/stats/telegraf/hamstats.nix>
- <stockholm/makefu/2configs/stats/arafetch.nix>
+ # <stockholm/makefu/2configs/stats/arafetch.nix>
# services
{
@@ -71,14 +71,9 @@ in {
<stockholm/makefu/2configs/virtualisation/docker.nix>
<stockholm/makefu/2configs/bluetooth-mpd.nix>
- {
- # Risikoübernahme
- nixpkgs.config.permittedInsecurePackages = [
- "homeassistant-0.77.2"
- ];
- }
- <stockholm/makefu/2configs/homeautomation>
- <stockholm/makefu/2configs/homeautomation/google-muell.nix>
+ <stockholm/makefu/2configs/ham>
+ <stockholm/makefu/2configs/ham/google-muell.nix>
+ <stockholm/makefu/2configs/ham/zigbee2mqtt>
{
makefu.ps3netsrv = {
enable = true;
@@ -90,7 +85,6 @@ in {
makefu.mpd.musicDirectory = "/media/cryptX/music";
}
-
# security
<stockholm/makefu/2configs/sshd-totp.nix>
# <stockholm/makefu/2configs/logging/central-logging-client.nix>
@@ -120,7 +114,7 @@ in {
gid = (import <stockholm/lib>).genid "share";
members = [ "makefu" "misa" ];
};
- networking.firewall.trustedInterfaces = [ primaryInterface ];
+ networking.firewall.trustedInterfaces = [ primaryInterface "docker0" ];
@@ -141,18 +135,18 @@ in {
sed-plugin
random-emoji ];
};
- krebs.Reaktor.reaktor-bgt = {
- nickname = "Reaktor|bgt";
- workdir = "/var/lib/Reaktor/bgt";
- channels = [ "#binaergewitter" ];
- plugins = with pkgs.ReaktorPlugins;
- [ titlebot
- # stockholm-issue
- nixos-version
- shack-correct
- sed-plugin
- random-emoji ];
- };
+ #krebs.Reaktor.reaktor-bgt = {
+ # nickname = "Reaktor|bgt";
+ # workdir = "/var/lib/Reaktor/bgt";
+ # channels = [ "#binaergewitter" ];
+ # plugins = with pkgs.ReaktorPlugins;
+ # [ titlebot
+ # # stockholm-issue
+ # nixos-version
+ # shack-correct
+ # sed-plugin
+ # random-emoji ];
+ #};
krebs.build.host = config.krebs.hosts.omo;
}
diff --git a/makefu/1systems/omo/hw/omo.nix b/makefu/1systems/omo/hw/omo.nix
index 31db335bb..87af2a314 100644
--- a/makefu/1systems/omo/hw/omo.nix
+++ b/makefu/1systems/omo/hw/omo.nix
@@ -26,9 +26,10 @@ let
# |_______|
# cryptDisk0 = byid "ata-ST2000DM001-1CH164_Z240XTT6";
cryptDisk0 = byid "ata-ST8000DM004-2CX188_ZCT01PLV";
- cryptDisk1 = byid "ata-TP02000GB_TPW151006050068";
- cryptDisk2 = byid "ata-ST4000DM000-1F2168_Z303HVSG";
+ cryptDisk1 = byid "ata-WDC_WD80EZAZ-11TDBA0_7SJPVLYW";
cryptDisk3 = byid "ata-ST8000DM004-2CX188_ZCT01SG4";
+ cryptDisk2 = byid "ata-WDC_WD80EZAZ-11TDBA0_7SJPWT5W";
+
# cryptDisk3 = byid "ata-WDC_WD20EARS-00MVWB0_WD-WMAZA1786907";
# all physical disks
@@ -48,8 +49,8 @@ in {
makefu.snapraid = {
enable = true;
- disks = map toMapper [ 0 2 3 ];
- parity = toMapper 1;
+ disks = map toMapper [ 0 1 3 ];
+ parity = toMapper 2; # find -name PARITY_PARTITION
};
fileSystems = let
cryptMount = name:
@@ -102,6 +103,8 @@ in {
"firewire_ohci"
"usb_storage"
"usbhid"
+ "raid456"
+ "megaraid_sas"
];
kernelModules = [ "kvm-intel" ];
diff --git a/makefu/1systems/omo/source.nix b/makefu/1systems/omo/source.nix
index 0d42cc9e2..05c17377f 100644
--- a/makefu/1systems/omo/source.nix
+++ b/makefu/1systems/omo/source.nix
@@ -1,4 +1,5 @@
{
name="omo";
torrent = true;
+ unstable = true;
}
diff --git a/makefu/1systems/x/config.nix b/makefu/1systems/x/config.nix
index ea18c68ac..4c479875e 100644
--- a/makefu/1systems/x/config.nix
+++ b/makefu/1systems/x/config.nix
@@ -58,7 +58,7 @@
# Krebs
<stockholm/makefu/2configs/tinc/retiolum.nix>
- <stockholm/makefu/2configs/share/gum-client.nix>
+ # <stockholm/makefu/2configs/share/gum-client.nix>
# <stockholm/makefu/2configs/share/temp-share-samba.nix>
@@ -103,6 +103,7 @@
# <stockholm/makefu/2configs/hw/malduino_elite.nix>
<stockholm/makefu/2configs/hw/switch.nix>
# <stockholm/makefu/2configs/hw/rad1o.nix>
+ <stockholm/makefu/2configs/hw/cc2531.nix>
<stockholm/makefu/2configs/hw/smartcard.nix>
<stockholm/makefu/2configs/hw/upower.nix>
@@ -142,7 +143,6 @@
];
};
}
-
];
makefu.server.primary-itf = "wlp3s0";
diff --git a/makefu/2configs/bureautomation/automation/daily-news.nix b/makefu/2configs/bureautomation/automation/daily-news.nix
new file mode 100644
index 000000000..2bafe4795
--- /dev/null
+++ b/makefu/2configs/bureautomation/automation/daily-news.nix
@@ -0,0 +1,20 @@
+[
+ {
+ alias = "Daily news for Felix";
+ trigger = {
+ platform = "time";
+ at = "07:35:00";
+ };
+ action =
+ [
+ {
+ service = "notify.telegrambot";
+ data_template = {
+ title = "Daily News";
+ # TODO
+ message = "";
+ };
+ }
+ ];
+ }
+]
diff --git a/makefu/2configs/bureautomation/automation/quotes.nix b/makefu/2configs/bureautomation/automation/quotes.nix
new file mode 100644
index 000000000..c4625ae30
--- /dev/null
+++ b/makefu/2configs/bureautomation/automation/quotes.nix
@@ -0,0 +1,4 @@
+# heiss
+Lieber Freund, was für ein Sommer! Ich denke Sie mir im Zimmer sitzend, mehr Omelette als Mensch.
+Sommer ist die Zeit, in der es zu heiß ist, um das zu tun, wozu es im Winter zu kalt war.
+
diff --git a/makefu/2configs/bureautomation/automation/schlechteluft.nix b/makefu/2configs/bureautomation/automation/schlechteluft.nix
index 8787ee280..370334743 100644
--- a/makefu/2configs/bureautomation/automation/schlechteluft.nix
+++ b/makefu/2configs/bureautomation/automation/schlechteluft.nix
@@ -66,9 +66,6 @@ in [
language = "de";
};
}
- { service = "notify.matrix_notify";
- data_template.message = "Schlechte Luft Alarm seit ${toString long_threshold} Minuten ({{states.sensor.air_quality.state_with_unit}})!";
- }
];
}
]
diff --git a/makefu/2configs/bureautomation/camera/stuttgart.nix b/makefu/2configs/bureautomation/camera/stuttgart.nix
new file mode 100644
index 000000000..78cbeb3e2
--- /dev/null
+++ b/makefu/2configs/bureautomation/camera/stuttgart.nix
@@ -0,0 +1,26 @@
+
+let
+ cam = name: still_image_url:
+ {
+ inherit name still_image_url;
+ platform = "generic";
+ };
+in [
+ ( cam "Max-Eyth-See" https://www.wav-stuttgart.de/webcam/_/webcam1.jpg )
+ ( cam "Wilhelma" http://webcam.wilhelma.de/webcam02/webcam02.jpg )
+ ( cam "Marktplatz" https://webcam.stuttgart.de/wcam007/current.jpg )
+ ( cam "Schoch Areal" https://webcam.stuttgart.de/wcam004/current.jpg )
+ ( cam "Leuze" https://webcam.stuttgart.de/wcam005/current.jpg )
+ ( cam "Straße Wilhelma" https://webcam.stuttgart.de/wcam006/current.jpg )
+ ( cam "Fernsehturm 1" http://webcam.fernsehturmstuttgart.com/current.jpg )
+ ( cam "Fernsehturm 2" http://webcam.fernsehturmstuttgart.com/current2.jpg )
+ ( cam "Feuerbach Lemberg" http://www.regio7.de/handy/current.jpg )
+ ( cam "Flughafen Stuttgart 1" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam2.jpg )
+ ( cam "Flughafen Stuttgart 2" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam5.jpg )
+ ( cam "Flughafen Stuttgart 3" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam7.jpg )
+ ( cam "S21 1" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-03/s21-turm03.jpg )
+ ( cam "S21 2" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-02/s21-turm-02.jpg )
+ ( cam "S21 3" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-01/s21-turm-01.jpg )
+ ( cam "S21 4" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Jaegerstrasse-Nordkopf/s21-jaegerstrassse-nordkopf.jpg )
+ ( cam "S21 5" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Bahndirektion-Nord/S21-Bundesbahndirektion-Nord.jpg )
+]
diff --git a/makefu/2configs/bureautomation/default.nix b/makefu/2configs/bureautomation/default.nix
index c55bc1d14..3c1659558 100644
--- a/makefu/2configs/bureautomation/default.nix
+++ b/makefu/2configs/bureautomation/default.nix
@@ -11,6 +11,7 @@ in {
imports = [
./ota.nix
./comic-updater.nix
+ ./puppy-proxy.nix
];
networking.firewall.allowedTCPPorts = [ 8123 ];
state = [ "/var/lib/hass/known_devices.yaml" ];
@@ -33,13 +34,14 @@ in {
'';
})).override {
extraPackages = ps: with ps; [
- pkgs.pico2wave
+ pkgs.picotts
python-forecastio jsonrpc-async jsonrpc-websocket mpd2
(callPackage ./deps/openwrt-luci-rpc.nix { })
];
};
autoExtraComponents = true;
config = {
+ discovery = {};
homeassistant = {
name = "Bureautomation";
time_zone = "Europe/Berlin";
@@ -72,6 +74,8 @@ in {
};
matrix = matrix.matrix;
mqtt = {
+ discovery = true;
+ discovery_prefix = "homeassistant";
broker = "localhost";
port = 1883;
client_id = "home-assistant";
@@ -124,7 +128,7 @@ in {
frosch.script
ten_hours.script
mittagessen.script
- standup.script
+ # standup.script
];
binary_sensor =
(import ./binary_sensor/buttons.nix)
@@ -145,7 +149,8 @@ in {
camera =
(import ./camera/verkehrskamera.nix)
- ++ (import ./camera/comic.nix);
+ ++ (import ./camera/comic.nix)
+ ++ (import ./camera/stuttgart.nix);
person =
(import ./person/team.nix );
@@ -198,9 +203,10 @@ in {
"switch.blitzdings"
"switch.fernseher"
"switch.feuer"
+ "switch.frosch_blasen"
"light.status_felix"
- "light.status_daniel"
- "light.buslicht"
+ # "light.status_daniel"
+ # "light.buslicht"
];
team = [
"person.thorsten"
@@ -212,6 +218,7 @@ in {
"person.thierry"
"person.frank"
"person.emeka"
+ "person.tancrede"
#"device_tracker.felix_phone"
#"device_tracker.ecki_tablet"
#"device_tracker.daniel_phone"
@@ -228,6 +235,7 @@ in {
"camera.Baumarkt"
"camera.Autobahn_Heilbronn"
"camera.Autobahn_Singen"
+ "camera.puppies"
"camera.poorly_drawn_lines"
];
nachtlicht = [
@@ -264,7 +272,6 @@ in {
outside = [
# "sensor.ditzingen_pm10"
# "sensor.ditzingen_pm25"
- "sensor.dark_sky_icon"
"sensor.dark_sky_temperature"
"sensor.dark_sky_humidity"
"sensor.dark_sky_uv_index"
@@ -282,7 +289,7 @@ in {
++ (import ./automation/hass-restart.nix)
++ ten_hours.automation
++ matrix.automation
- ++ standup.automation
+ # ++ standup.automation
++ frosch.automation
++ mittagessen.automation;
device_tracker = (import ./device_tracker/openwrt.nix );
diff --git a/makefu/2configs/bureautomation/deps/aresponses.nix b/makefu/2configs/bureautomation/deps/aresponses.nix
new file mode 100644
index 000000000..9e64d2f65
--- /dev/null
+++ b/makefu/2configs/bureautomation/deps/aresponses.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+# propagatedBuildInputs
+, aiohttp
+# buildInputs
+, pytest
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+ pname = "aresponses";
+ version = "1.1.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "d1d6ef52b9a97142d106688cf9b112602ef3dc66f6368de8f91f47241d8cfc9c";
+ };
+
+ propagatedBuildInputs = [
+ aiohttp
+ ];
+
+ buildInputs = [
+ pytest
+ pytest-asyncio
+ ];
+
+ # tests only distributed via git repository, not pypi
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Asyncio testing server";
+ homepage = "https://github.com/circleup/aresponses";
+ license = licenses.mit;
+ maintainers = [ maintainers.makefu ];
+ };
+}
diff --git a/makefu/2configs/bureautomation/multi/10h_timers.nix b/makefu/2configs/bureautomation/multi/10h_timers.nix
index 73709e738..a30fb28b0 100644
--- a/makefu/2configs/bureautomation/multi/10h_timers.nix
+++ b/makefu/2configs/bureautomation/multi/10h_timers.nix
@@ -2,6 +2,8 @@
let
persons = [ "frank" "daniel" "thorsten" "carsten" "ecki" "felix"
"thierry" # tjeri
+ "emeka"
+ "tancrede"
];
random_zu_lange = name: ''{{ [
"Du musst jetzt endlich nach Hause gehen ${name}!",
@@ -20,6 +22,7 @@ let
random_announce = name: ''{{ [
"${name} is in da House",
"Ahoi ${name}",
+ "Hallöchen Popöchen ${name}",
"Moinsen ${name}",
"Moin Moin ${name}",
"Palim, Palim ${name}",
@@ -55,7 +58,7 @@ let
"Und es startet für ${name} wieder ein Tag im Paradies",
"Lieber ${name}, Markus Keck hat dich bereits drei mal Versucht anzurufen!",
"Trotz schwerer Männergrippe ist ${name} heute im Büro erschienen.",
- "${name} kenne keine Parteien mehr, ${name} kenne nur noch Arbeitsplätze",
+ "${name} kennt keine Parteien mehr, ${name} kennt nur noch Arbeitsplätze",
"${name}, Frage